我正在使用 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
您需要将此行添加到您的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
别名在 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
这样当您运行 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=...
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 软件中默认的配置在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
different-settings.xml
您可以在部署项目时指向 a 。从项目文件夹部署时,您可以使用相对路径返回主文件夹:
mvn clean deploy -s ../../.m2/different-settings.xml