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

Java 将单个构建作业的.m2设置为不同的位置,java,maven,Java,Maven,对于生成服务器上的生成作业,我想将.m2位置设置为与user.home/.m2不同的位置 我想我可以通过为构建设置export HOME=$WORKSPACE来欺骗maven,但是工件一直在下载并部署到构建用户的主目录中 因此,我认为maven使用了user.home系统属性,它似乎没有考虑$home 有解决办法吗?我们有一个本地maven缓存,我确实希望下载此构建作业的所有工件,并防止任何部署到构建用户的$HOME/.m2,以便将各个构建作业彼此分离。至少有些工作我想要这个 有什么想法吗?提前

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

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

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

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


有什么想法吗?提前谢谢

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

mvn <target> --settings /path/to/settings.xml
mvn--settings/path/to/settings.xml
从这里你可以定制任何你需要的东西


[更新]您甚至可以通过
--global settings/path/to/global/settings.xml覆盖通常与用户的settings.xml合并在.m2目录中的“全局”设置。如果您只想指定自己的本地存储库,可以使用选项
maven.repo.local

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

资源:

  • (在maven-1.x网站上,但仍使用maven 3.0-但无法找到此版本的可靠来源)

我是否可以通过环境变量进行设置?如果可能的话,我希望在不实际更改构建文件的情况下配置构建脚本。但如果有这样的机会,那就太好了。:)@Martin C:我不知道你是如何开始构建脚本的,所以我不能说。大部分都是通过Jenkins服务器上的shell脚本完成的,因为对于那些我想修改.m2位置的地方,还有额外的预处理步骤。有些是建筑工人的工作,有些是毕业生的工作。Buildr在这方面是可配置的,但Gradle似乎使用默认的maven;也许你可以提出一个关于Gradle的新问题,并参考这个问题。