【问题标题】:How to set up several settings files in the maven .m2 folder?如何在 maven .m2 文件夹中设置几个设置文件?
【发布时间】:2019-12-10 20:29:30
【问题描述】:

我目前正在处理几个项目,每个项目都有不同的工件设置。因此,在它们之间切换时,我必须转到 maven 文件夹并更改设置文件以对应正确的公司存储库。我很确定它是无效的,而且很可能有人已经有了一个简单的解决方案来解决这个问题。可能有一些我需要切换的 IDEA 设置,或者 maven 本身有某种方式来存储它们? 所以,我的问题是 - 有谁知道在同一个 Maven 主文件夹中使用多个 settings.xml 文件的简单方法?

到目前为止,快速 google 和 stackoverflow 搜索未提供任何结果。

我希望当我在 Idea 中打开另一个项目时,它将使用自己的工件而不是使用以前项目中的工件(因为这些工件来自不同的公司,显然使用同一个是不正确的)

上面的答案对我来说不太适用,因为我正在通过 IDEA 运行项目,并且它正在使用单个 settings.xml 下载工件

【问题讨论】:

  • 您是否尝试过将此设置放入 pom 文件?您可以使用应用于多个级别的 Maven 配置文件:maven.apache.org/guides/introduction/…
  • @Igor - 我认为您可以将设置添加为 IDE 中 mvn 命令的命令行参数,如本答案的 cmets 中所述。 stackoverflow.com/a/25279325/3981539
  • 我正在通过 IDEA 运行项目,它正在使用单个 settings.xml 下载工件,所以上面第一个答案的链接对我来说不太适用。如果该项目只是我的,那么在 pom 文件中添加一些东西可能会起作用,但是由于有几个开发人员,所以我不能用只有我会使用的额外东西来破坏 pom 文件。
  • 我可以推荐的最佳设置在 $HOME/.m2/ 中创建一个 git 存储库,并为这些区域创建两个不同的分支......只需 git checkout COMPANY1 一个,git checkout COMPANY2 另一个......简单和简单..您可以按照您在 settings.xml 文件中所做的更改..

标签: java maven settings


【解决方案1】:

您通常的工作方式是:

  • 将所有项目所需的所有存储库放入您的settings.xml,以便它适用于所有项目。
  • 使用 Nexus/Artifactory 代理您需要的所有存储库,并将其作为镜像放入您的 settings.xml

如果一个存储库真的应该只有一个项目可以访问,你可以输入那个项目的pom.xml

我不明白其他开发人员应该如何反对将存储库放入 pom.xml,因为他们需要完全相同的存储库来运行项目(如果没有,请发表评论并解释)。

【讨论】:

  • 并非所有开发人员都使用多个项目,对他们来说,在 maven home 中使用单个设置文件可能比在 pom 文件中找出新记录更方便。至少现在这个项目的结构是这样的,如果将设置放入 pom 中很方便,它们早就存在了。
  • 我们在 Nexus 中配置了我们需要的所有 20 多个存储库,然后 settings.xml(适用于所有开发人员)仅指向该 Nexus。
  • 特别是,我想知道:您可能在 Jenkins、Bamboo 等某种构建服务器上构建这些项目......您如何在那里管理不同的settings.xml
  • Jenkins 位于 CI 收到推送后的远程服务器上。我目前正在谈论我的本地开发机器,它应该同时存储两个文件。我可以将链接合并到存储库,但每个工件都需要自己的凭据,是否可以将两者合并到一个设置文件中?
  • 我正在检查什么是 Nexus,看起来它可能是一个解决方案,但我想到了一些简单快捷的解决方案,而不是找出全新的技术)
猜你喜欢
  • 1970-01-01
  • 2013-01-18
  • 1970-01-01
  • 2021-08-17
  • 1970-01-01
  • 2017-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多