【发布时间】:2016-11-15 02:42:30
【问题描述】:
在没有 pom.xml 的项目之外,是否可以始终更改 Maven 期望用户设置的位置?例如,从用户主目录中的终端窗口?
我已经阅读了好几天,但在 apache 网站、谷歌或这里找不到答案。在https://maven.apache.org/settings.html 它说:
settings.xml 文件可能存在两个位置:
The Maven install: ${maven.home}/conf/settings.xml A user’s install: ${user.home}/.m2/settings.xml
我想更改我机器上 Maven 安装/程序的实际配置以在其他地方查找用户的设置,始终:/home/userFoo/bin/maven.config.directory/settings.xml 而不是 /home/userFoo/.m2/settings.xml
settings.xml 文件说:
<!--
| This is the configuration file for Maven. It can be specified at two levels:
|
| 1. User Level. This settings.xml file provides configuration for a single user,
| and is normally provided in ${user.home}/.m2/settings.xml.
|
| NOTE: This location can be overridden with the CLI option:
|
| -s /path/to/user/settings.xml
但是当我运行那个命令时, mvn -s /home/userFoo/bin/maven.config.directory/settings.xml 我得到了很多错误。
【问题讨论】:
-
不清楚您在问什么:1. 您是否要指定自定义设置的路径(因此使用
-s选项),同时仍将${user.home}/.m2/settings.xml保持为默认值(即不使用-s)? 2. 或者您是否想覆盖该默认设置,以便 Maven 始终考虑您的新设置而无需任何-s声明? -
我想覆盖 Maven 在哪里寻找用户定义的设置:而不是
${user.home}/.m2/settings.xml告诉 Maven 总是在新位置寻找用户定义的设置。我会编辑问题,谢谢! -
没有真正的好方法可以做到这一点。最简单的选择是像您一样使用符号链接,或者为始终附加
-s ...的mvn脚本创建别名,例如alias mvn='mvn -s ...' -
你可以设置
MAVEN_OPTS覆盖JVM中的user.home。export MAVEN_OPTS=-Duser.home=/home/userFoo/bin/maven.config.directory
标签: maven