2011-05-31 36 views
5

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

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

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

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

任何想法?提前致谢!

回答

6

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

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

从这里你可以定制任何您需要。

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

+0

我可以设置此通过环境变量不知?如果可能的话,我想配置构建脚本而不实际更改构建文件。但那只是一件好事。 :) – 2011-05-31 17:59:39

+0

@Martin C .:我不知道你是如何开始构建脚本,所以我不能说。 – 2011-05-31 18:47:58

+0

它大部分都是通过Jenkins服务器上的shell脚本完成的,因为那些我想要修改.m2位置的人需要额外的预处理步骤。一些是建筑工作,一些是Gradle工作。 Buildr在这方面是可配置的,但Gradle使用默认的maven,就像看起来一样。 – 2011-06-01 06:18:09

5

形成了目录的.m2如果你只是想指定自己的本地仓库你可以使用选项maven.repo.local

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

资源:

  • maven.apache.org(在Maven的1.x的网站,但与Maven 3.0仍然有效 - 找不到这个版本虽然是可靠的消息来源)
相关问题