是否可以更改用户的install settings.xml($ {user.home} /.m2 / settings.xml)的默认路径?

时间:2016-11-15 02:42:31

标签: maven

当项目外部没有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我会遇到很多错误。

3 个答案:

答案 0 :(得分:2)

您可以设置MAVEN_OPTS环境变量以覆盖JVM中的user.home

export MAVEN_OPTS=-Duser.home=/home/userFoo/bin/maven.config.directory
# do something with Maven
mvn dependency:list

或Windows

set MAVEN_OPTS=-Duser.home=D:\home\userFoo\bin\maven.config.directory
:: do something with Maven
mvn dependency:ist

您还可以将MAVEN_OPTS添加到您的.bashrc,.profile或Windows环境中。

答案 1 :(得分:1)

您可以尝试使用以下命令: mvn --settings /home/userFoo/bin/maven.config.directory/settings.xml archetype:generate

您可以通过检查命令的输出来验证是否正在加载自定义设置文件: mvn --settings /home/userFoo/bin/maven.config.directory/settings.xml help:effective-settings

如果您希望通过在目标之前附加上述命令从共享位置加载

,则可以更改默认的全局设置文件位置

--global-settings /${shared.location}/settings.xml

如果您不想每次都输入该命令,您可能还想为该命令创建一个别名。

答案 2 :(得分:0)

把它放在这里,因为这是我能让它发挥作用的唯一方法,但感觉不对:

在$ {user.home} /.m2 / settings.xml上创建一个软链接:

ln -s ~/.m2/settings.xml ~/bin/maven.config.directory/settings.xml