Maven - 替代.m2目录

时间:2013-05-16 15:05:18

标签: maven

如何全局更改maven .m2目录的位置?

Maven使用${user.home}/.m2进行设置,存储库缓存等。

我知道我可以:

  • 指向存储库缓存的不同目录(通过更改我的全局配置文件中的localRepository属性),但不是其他任何目录(例如settings.xml)。
  • 使用-s CLI选项,但每次使用maven时我都必须这样做。

但理想情况下,我喜欢全球解决方案。直觉上应该是可能的..

我想这样做是因为我的公司将我的$ {user.home}设置为容易出现网络问题的共享驱动器。

4 个答案:

答案 0 :(得分:44)

使用MAVEN_OPTS环境变量设置存储库的位置。在shell启动时设置它,并且不必每次都将它放在命令行上。

export MAVEN_OPTS="-Dmaven.repo.local=/path/to/repository"

您说您想要更改.m2文件的settings.xml以及repository目录。您想要设置M2_HOME环境变量。 Maven settings documentation表示它控制着Maven查找settings.xml的位置。从那里,您可以控制存储库位置等。

答案 1 :(得分:13)

最好的选择是在使用Maven指向计算机上的本地文件夹之前,先在您的user.home中创建.m2作为符号链接。

否则你可以为mvn创建一个shell别名,名为mymvn(或m3或其他),它传入-s以及本地repo位置。

答案 2 :(得分:-2)

还有一个用例,但是如果你使用Jenkins,你可以设置r8.jar标志,Jenkins会为你做这件事。

  

选中此选项后,Jenkins将告诉Maven使用$ WORKSPACE / .repository作为本地Maven存储库。这意味着每个作业都将为自己获得自己独立的Maven存储库。

enter image description here

答案 3 :(得分:-3)

您需要找到您的settings.xml文件,然后修改<localRepository>/path/to/local/repo</localRepository>