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