我正在使用Maven 3.0,并且我的.m2文件夹位置是C:\Users\me\.m2。
但是,我没有对该文件夹的写访问权,但是我想从中定义的位置更改存储库位置settings.xml。
由于访问受限,我无法编辑settings.xml来更改存储库的位置。
如何settings.xml在.m2不编辑C:\Users\me\.m2\conf\settings.xml文件的情况下覆盖我的值-或更改文件夹的默认位置?
我正在使用Maven 3.0,并且我的.m2文件夹位置是C:\Users\me\.m2。
但是,我没有对该文件夹的写访问权,但是我想从中定义的位置更改存储库位置settings.xml。
由于访问受限,我无法编辑settings.xml来更改存储库的位置。
如何settings.xml在.m2不编辑C:\Users\me\.m2\conf\settings.xml文件的情况下覆盖我的值-或更改文件夹的默认位置?
Answers:
您需要将此行添加到您的行中settings.xml(或取消注释(如果已经存在))。
<localRepository>C:\Users\me\.m2\repo</localRepository>
也可以使用以下命令运行命令mvn clean install -gs C:\Users\me\.m2\settings.xml-此参数将强制maven使用settings.xml与默认命令不同的命令(位于中$HOME/.m2/settings.xml)
.m2全局设置其他位置,则需要修改$HOME/.m2/settings.xml,但我不知道还有其他方法可以实现此目的。
有趣的是,其他答案忽略了您无法写入该文件的事实...
有迹象表明,我想起了几个解决方法,可以帮助使用任意C:\redirected\settings.xml并且使用mvn命令如常后幸福快乐的日子。
mvn 别名在Unix Shell中(或在Cygwin上),您可以创建
alias mvn='mvn --global-settings "C:\redirected\settings.xml"'
因此,当您mvn blah blah从任何地方调用配置时,都会“自动”进行配置。
请参阅如何在中创建别名cmd?如果您想这样做,但没有Unix shell。
mvn 包装纸配置环境,以便mvn在命令行中键入时可解析为包装器脚本:
MVN_HOME/bin或M2_HOME/bin您,PATH所以mvn不再解决。PATH(或使用现有文件夹)在该文件夹中创建一个mvn.bat包含以下内容的文件:
call C:\your\path\to\maven\bin\mvn.bat --global-settings "C:\redirected\settings.xml" %*
注意:如果您希望某些项目的行为有所不同,则可以mvn.bat在与该文件夹相同的文件夹中进行创建,pom.xml这样在纯运行时mvn它将解析为本地文件夹。
您where mvn可以随时使用来检查解析方式,键入时将运行第一个mvn。
mvn.bat 骇客如果您具有的写入权限C:\your\path\to\maven\bin\mvn.bat,请编辑文件并添加set MAVEN_CMD_LINE_ARG至:runm2零件:
@REM Start MAVEN2
:runm2
set MAVEN_CMD_LINE_ARGS=--global-settings "C:\redirected\settings.xml" %MAVEN_CMD_LINE_ARGS%
set CLASSWORLDS_LAUNCHER=...
mvn.sh 骇客为了完整起见,您也可以C:\your\path\to\maven\bin\mvn通过更改exec "$JAVACMD"命令的
${CLASSWORLDS_LAUNCHER} "$@"
一部分
${CLASSWORLDS_LAUNCHER} --global-settings "C:\redirected\settings.xml" "$@"
作为IT部门的人,您无法访问自己的主文件夹很可笑,对我来说,这构成了您所在公司的能力不足:这等同于雇用某人进行软件开发,但甚至没有提供可以使用notepad.exe或Microsoft Word以外的任何其他文件来编辑源文件。我建议与您的服务台或管理员联系,并要求至少对该特定文件具有写权限,以便您可以更改本地存储库的路径。
免责声明:这些都没有针对此特定用例进行过测试,但是我之前已成功将它们全部用于其他各种软件。
没有人建议这样做,但是您可以使用-Dmaven.repo.local命令行参数来更改存储库所在的位置。此外,根据settings.xml文档,您可以设置-Dmaven.home查找settings.xml文件的位置。
请参阅:Settings.xml文档
以下是MAVEN_HOME \ conf \ settings.xml中默认情况下Maven软件中的配置。
<settings>
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ~/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
在此配置下添加以下行,即可满足要求。
<localRepository>custom_path</localRepository>
例如: <localRepository>D:/MYNAME/settings/.m2/repository</localRepository>