ChatGPT解决这个技术问题 Extra ChatGPT

maven命令行如何指向单个命令的特定settings.xml?

是否可以指向特定的设置文件以覆盖 maven 用于单个命令的默认 settings.xml?例子:

mvn clean install -Dparam # -> pass specific settings file path as param to override default "home/.m2/settings.xml"

k
khmarbaise

您可以简单地使用:

mvn --settings YourOwnSettings.xml clean install

或者

mvn -s YourOwnSettings.xml clean install

你是说本地缓存吗?可以在 settings.xml 内或通过命令行 -Dmaven.repo.local=$HOME/.my/other/repository 定义
@NeerajSinghChouhan 我知道有点晚了,但是在 Eclipse 中,打开 Window > Preferences > Maven > User Settings。在此处指定不同的用户设置 (settings.xml) 文件,然后单击更新设置。
我通过 -s 使用非默认 settings.xml 选项运行 mvn install,并且工件已发布到默认的 .m2 存储库,而不是 -s 中指定的存储库。然后我尝试通过 -s 指定一个不存在的设置文件,它抱怨该文件不存在。所以 maven 似乎认识到我正在指定一个非默认文件,但选择不使用它或不完全使用它。
您可以通过 -gs,--global-settings 定义全局设置文件,通过 -s 定义用户设置文件...在用户设置文件中,如果我正确理解您的问题,您可以覆盖内容。
settings.xml 是全局的,不是基于项目的。因此,settings.xml 的位置是您在 $HOME/.m2/ 中的主目录,其他任何地方都没有。除此之外,它可能包含永远不应放入您的项目中的凭据。 .mvn 目录用于扩展而不是 settings.xml 文件...
A
Aakarsh Gupta

我只是觉得这很困难,它仍然不适合我。然后我检查了评论并了解您必须覆盖全局设置。由@khmarbaise 指出,我将其添加到新答案中。

mvn -gs /local-path/settings.xml clean install

mvn --global-settings /local-path/settings.xml clean install