是否可以在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还是将本地回购移动到~
使用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存储库
一种行得通的方法是:
${m2.localrepository}
添加到您的settings.xml-dm2.localrepository=/.m2/repository
。 这将使您的默认本地回购保持在它应该保持的位置。mvn-dm2.localrepository=...
。 因为您的命令行系统属性是在mvn脚本中的命令行之后添加到命令行的,所以它将优先。 (至少我相当肯定它在windows和linux上都是这样工作的,但是测试会告诉你。)