将单个构建作业的.m2设置为不同的位置

Mar*_* C. 5 java maven

对于构建服务器上的构建作业,我想将.m2位置设置为不同的位置user.home/.m2.

我以为我可以通过设置export HOME=$WORKSPACE构建来欺骗maven ,但是工件不断被下载并被部署到构建用户的主目录中.

因此我认为maven使用的user.home系统属性似乎没有考虑$HOME到.

这有解决方案吗?我们有一个本地maven缓存,我确实想要为这个构建作业下载所有工件,并阻止任何部署到构建用户的工作$HOME/.m2,以便将各个构建作业彼此分开.至少我想要一些工作.

有任何想法吗?提前致谢!

And*_*ite 6

您可以从命令行覆盖settings.xml文件的位置...

mvn <target> --settings /path/to/settings.xml
Run Code Online (Sandbox Code Playgroud)

从这里您可以自定义您需要的任何东西.

[更新]您甚至可以覆盖通常通过用户的settings.xml与其.m2目录合并的"全局"设置 --global-settings /path/to/global/settings.xml


Col*_*ert 5

如果您只想指定自己的本地存储库,可以使用以下选项maven.repo.local:

-Dmaven.repo.local=/path/to/your/repository
Run Code Online (Sandbox Code Playgroud)

资源:

  • maven.apache.org(在maven-1.x网站上,但仍然可以使用maven 3.0 - 虽然找不到这个版本的可靠来源)