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

h6my8fg2  于 2023-01-29  发布在  Maven
关注(0)|答案(3)|浏览(102)

当在项目之外,没有pom.xml时,是否可以始终在Maven期望的用户设置位置进行更改?例如,从用户主目录中的终端窗口进行更改?
我已经读了好几天了,但是我在apache网站、google或者这里都找不到答案,在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时,我得到了很多错误。

v8wbuo2f

v8wbuo2f1#

您可以设置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:list

您也可以将MAVEN_OPTS添加到. bashrc、. profile或Windows环境中。

wnrlj8wa

wnrlj8wa2#

您可以尝试使用以下命令:

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

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

lqfhib0f

lqfhib0f3#

把这个放在这里是因为这是我能让它工作的唯一方法,但感觉不对:
在${user.home}/.m2/settings.xml中创建软链接,其中包含:

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

相关问题