6

作为一名顾问,我为多个客户工作。每个客户端都使用自己的内部 Maven 存储库,该存储库也设置为镜像 Central 和其他外部存储库。我需要在我的笔记本电脑上配置我的 maven 安装,以便当我为一个客户工作时,它可以利用他们的内部存储库来处理所有事情。

我原以为我可以使用配置文件来处理这个问题,但是不能根据配置文件更改镜像设置。

有人对如何处理这个 Maven 配置有建议吗?

注意:这里有一个类似的问题:如果 nexus 服务器关闭,我如何配置 maven 以访问 maven Central?,但该问题涉及是否在来自镜像的 Central 之间切换。我需要的是 Central(和其他人)来自一个镜像或基于某些属性/设置/变量等的不同镜像。

4

3 回答 3

2

创建两个 shell 别名:

alias build_at_home="mvn -s $HOME/.m2/home_settings.xml"
alias build_at_work="mvn -s $HOME/.m2/work_settings.xml"

“-s”选项便于明确说明要使用的环境设置文件。我们在共享构建服务器上使用这种机制来确保每个项目构建都是隔离的。

显然,在 Windows 上,您可以创建一组批处理文件。

于 2012-06-26T16:46:10.353 回答
0

我的项目中也有非常相似的要求。我创建了两个单独settings.xml的文件,将它们命名为settings_one.xmlsettings_two.xml并将它们保存在MAVEN_HOME. 根据我需要的文件,我有一个小脚本(Windows 上的 bat 文件),它用两个设置文件之一覆盖现有的 settings.xml。

del C:\Users\<username>\.m2\settings.xml
copy C:\Users\<username>\.m2\settings_one.xml C:\Users\tadigotl\.m2\settings.xml
于 2012-06-26T05:28:01.590 回答
0

我可以建议的最简单的解决方案是安装 git 并将 .m2/settings.xml (当然通过 .gitignore 忽略存储库本身)提交到 git 并为客户创建适当的分支。更改设置将通过以下方式完成:

git checkout CUSTOMER_BRANCH

此外,任何更改都由 SCM 跟踪。

于 2012-06-26T06:10:59.400 回答