提问者:小点点

将Maven的本地存储库位置指定为CLI参数


是否可以在Maven命令行上将本地Maven存储库的位置设置为参数?

问题是,我没有使用~/.m2/repository中的默认选项。 但是,我用-s settings.xml签出了一些正在使用自己的设置构建的项目。 settings.xml没有指定我的本地存储库,因此Maven再次使用uses~/.m2/repository。。。 我希望使用非默认的本地存储库位置,而不必在项目的settings.xml中添加元素

我试过了

  • -DlocalRepository=“。。。”
  • $mvn调用者:run-s settings.xml clean install-dskiptests-dlocalrepositoryPath=
  • -dsettings.localrepository

但这些选择都不起作用。

所以我想我必须决定是修改第三方settings.xml还是将本地回购移动到~


共3个答案

匿名用户

使用maven属性maven.repo.local:

mvn-dmaven.repo.local=$home/。my/other/repository clean install

无需修改settings.xml

匿名用户

对于Git:

alias mvn='mvn "-Dmaven.repo.local=$(git rev-parse --show-toplevel)/.m2/repository"'

这将在每个git存储库中使用单独的maven存储库

匿名用户

一种行得通的方法是:

  1. ${m2.localrepository}添加到您的settings.xml
  2. 在mvn.sh或mvn.bat中,在执行的命令中的“$@”前面添加-dm2.localrepository=/.m2/repository。 这将使您的默认本地回购保持在它应该保持的位置。
  3. 现在您可以使用mvn-dm2.localrepository=... 。 因为您的命令行系统属性是在mvn脚本中的命令行之后添加到命令行的,所以它将优先。 (至少我相当肯定它在windows和linux上都是这样工作的,但是测试会告诉你。)