我正在使用Maven 3.0,我的.m2
文件夹位置是C:\Users\me\.m2
.
但是,我没有该文件夹的写入权限,但我想更改存储库位置settings.xml
.
由于访问受限,我无法编辑settings.xml
以更改存储库位置.
如何覆盖我的值settings.xml
- 或更改.m2
文件夹的默认位置- 而无需编辑我的C:\Users\me\.m2\conf\settings.xml
文件?
Pet*_*sik 74
您需要将此行添加到您的settings.xml
(或取消注释,如果它已经存在).
<localRepository>C:\Users\me\.m2\repo</localRepository>
Run Code Online (Sandbox Code Playgroud)
此外,它可以运行您的命令mvn clean install -gs C:\Users\me\.m2\settings.xml
- 此参数将强制maven使用不同settings.xml
的默认值(在其中$HOME/.m2/settings.xml
)
TWi*_*Rob 50
有趣的是,其他答案如何忽略了你无法写入该文件的事实......
有一些解决方法出现在我的脑海中,可以帮助使用任意的,C:\redirected\settings.xml
并且从未像往常一样快乐地使用mvn
命令.
mvn
别号在Unix shell(或Cygwin)中,您可以创建
alias mvn='mvn --global-settings "C:\redirected\settings.xml"'
Run Code Online (Sandbox Code Playgroud)
所以当你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" %*
Run Code Online (Sandbox Code Playgroud)注意:如果您希望某些项目的行为不同,您可以mvn.bat
在同一文件夹中创建,pom.xml
当您运行plain时,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=...
Run Code Online (Sandbox Code Playgroud)
mvn.sh
劈为了完整起见,您也可以C:\your\path\to\maven\bin\mvn
通过更改exec "$JAVACMD"
命令来更改shell脚本
${CLASSWORLDS_LAUNCHER} "$@"
Run Code Online (Sandbox Code Playgroud)
部分到
${CLASSWORLDS_LAUNCHER} --global-settings "C:\redirected\settings.xml" "$@"
Run Code Online (Sandbox Code Playgroud)
作为一个IT人员,有趣的是你无法访问自己的主文件夹,对我而言,这构成了你正在为之工作的公司的无能:这相当于雇佣某人进行软件开发,但不提供是否可以使用notepad.exe或Microsoft Word以外的任何内容来编辑源文件.我建议您联系您的服务台或管理员,并至少请求对该特定文件的写访问权限,以便您可以更改本地存储库的路径.
免责声明:这些都没有针对这个特定的用例进行测试,但我之前成功地将所有这些用于各种其他软件.
Par*_*uti 17
以下是默认情况下Maven_Home\conf\settings.html中Maven软件中的配置.
<settings>
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ~/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
Run Code Online (Sandbox Code Playgroud)
在此配置下添加以下行,将满足要求.
<localRepository>custom_path</localRepository>
Run Code Online (Sandbox Code Playgroud)
例如: <localRepository>D:/MYNAME/settings/.m2/repository</localRepository>
没有人建议这样做,但是您可以使用-Dmaven.repo.local
命令行参数来更改存储库所在的位置。此外,根据settings.xml
文档,您可以设置-Dmaven.home
查找settings.xml
文件的位置。
请参阅:Settings.xml文档
归档时间: |
|
查看次数: |
83786 次 |
最近记录: |