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

时间:2011-05-31 16:23:11

标签: java maven

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

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

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

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

有什么想法吗?提前谢谢!

2 个答案:

答案 0 :(得分:6)

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

mvn <target> --settings /path/to/settings.xml

从这里您可以自定义您需要的任何内容。

[更新]您甚至可以覆盖“全局”设置,这些设置通常通过--global-settings /path/to/global/settings.xml

从.m2目录与用户的settings.xml合并

答案 1 :(得分:5)

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

-Dmaven.repo.local=/path/to/your/repository

资源:

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