我正在使用Maven 3.0,我的.m2
文件夹位置是C:\Users\me\.m2
。
但是,我没有该文件夹的写入权限,但我想从settings.xml
中定义的存储库位置更改存储库位置。
由于访问受限,我无法编辑settings.xml
来更改存储库位置。
如何覆盖我的settings.xml
的值 - 或更改.m2
文件夹的默认位置 - 而无需编辑我的C:\Users\me\.m2\conf\settings.xml
文件?
您需要将此行添加到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
中)
有趣的是,其他答案如何忽略了你无法写入该文件的事实......
我想到了一些解决方法可以帮助使用任意的C:\redirected\settings.xml
,并且像往常一样快乐地使用mvn
命令。
mvn
alias在Unix shell(或Cygwin)中,您可以创建
alias mvn='mvn --global-settings "C:\redirected\settings.xml"'
所以,当你从任何地方调用mvn blah blah
时,配置会被“自动”选中。
如果你想要这个,请参阅How to create alias in cmd
?,但没有Unix shell。
mvn
wrapper配置您的环境,以便在命令行中键入时将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
hack如果您对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
hack为了完整性,您可以通过更改C:\your\path\to\maven\bin\mvn
命令来更改exec "$JAVACMD"
shell脚本
${CLASSWORLDS_LAUNCHER} "$@"
部分到
${CLASSWORLDS_LAUNCHER} --global-settings "C:\redirected\settings.xml" "$@"
作为一个IT人员,有趣的是你无法访问自己的主文件夹,对我而言,这构成了你正在为之工作的公司的无能:这相当于雇佣某人进行软件开发,但不提供是否可以使用notepad.exe或Microsoft Word以外的任何内容来编辑源文件。我建议您联系您的服务台或管理员,并至少请求对该特定文件的写访问权限,以便您可以更改本地存储库的路径。
免责声明:这些都没有针对这个特定的用例进行测试,但我之前成功地将所有这些用于各种其他软件。
以下是Maven软件中默认情况下在MAVEN_HOME \ conf \ settings.xml中的配置。
<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>
您可以在m2.conf文件中更改.m2目录的默认位置。它驻留在您的maven安装目录中。
添加修改此行
m2.conf
set maven.home C:\Users\me\.m2
没有人建议这样做,但您可以使用-Dmaven.local.repo
命令行参数来更改存储库所在的位置。此外,根据settings.xml
文档,您可以设置-Dmaven.home
查找settings.xml
文件。