我使用的是Maven 3.0,我的.m2
文件夹位置为C:\Users\me\.m2
。
但是,我没有该文件夹的写入权限,但我想更改settings.xml
中定义的存储库位置。
由于访问受限,我无法编辑settings.xml
来更改存储库位置。
如何覆盖settings.xml
的值 - 或更改.m2
文件夹的默认位置 - 而无需修改C:\Users\me\.m2\conf\settings.xml
文件?
答案 0 :(得分:69)
您需要将此行添加到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
{)
答案 1 :(得分:47)
有趣的是,其他答案如何忽略了您无法写入该文件的事实......
我想到了一些解决方法可以帮助您使用任意C:\redirected\settings.xml
和照常使用mvn
命令。
mvn
别名在Unix shell(或Cygwin)中,您可以创建
alias mvn='mvn --global-settings "C:\redirected\settings.xml"'
所以,当您从任何地方拨打mvn blah blah
时,“自动”选择配置
如果需要,请参阅How to create alias in 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
时,它会解析为本地项目。 / p>
随时使用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以外的任何东西编辑源文件的可能性。我建议您联系您的服务台或管理员,并至少请求对该特定文件的写访问权限,以便您可以更改本地存储库的路径。
免责声明 :这些都没有针对此特定用例进行测试,但我之前已成功使用其他所有软件。
答案 2 :(得分:15)
以下是默认情况下在 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>
答案 3 :(得分:7)
您可以在 m2.conf 文件中更改.m2目录的默认位置。它位于您的maven安装目录中。
在
中添加修改此行 <强> m2.conf
强>
set maven.home C:\Users\me\.m2
答案 4 :(得分:0)
没有人建议这样做,但是您可以使用acceptor
命令行参数来更改存储库的位置。另外,根据-Dmaven.local.repo
文档,您可以将settings.xml
设置为寻找-Dmaven.home
文件的位置。