正在覆盖Maven本地存储库设置

时间:2015-02-27 14:12:14

标签: maven

我的本​​地maven构建由于插件依赖性无法解决而失败。我在SO上发现这很可能是由于未正确设置而导致的。所以我运行mvn clean install -X来检查正在使用哪些设置文件。调试输出的相关部分是:

[DEBUG] Reading global settings from c:\Maven\apache-maven-3.2.5\conf\settings.xml
[DEBUG] Reading user settings from h:\.m2\settings.xml
[DEBUG] Using local repository at C:\Maven\apache-maven-3.2.5\repo

本地存储库在全局和本地settings.xml中定义为:

<localRepository>C:\.m2\repository\</localRepository>

我已经能够通过命令行覆盖本地存储库来成功构建:

 mvn clean install -Dmaven.repo.local=my/local/repo

我的M2_HOME环境变量为C:\Maven\apache-maven-3.2.5

命令行修复可以作为一种解决方法,但它并不理想。没有在pom.xml中定义本地存储库。

除了设置文件之外,还有其他地方可以定义本地存储库,因此是否覆盖了settings.xml中的配置?

1 个答案:

答案 0 :(得分:3)

有三种(一半)方法可以配置您的本地仓库:

  1. 全球参与<MAVEN_HOME>/conf/settings.xml
  2. <USER_HOME>/.m2/settings.xml
  3. 中的每位用户
  4. 每个命令行arg:mvn clean install -Dmaven.repo.local=my/local/repo
  5. 每个环境变量MAVEN_OPTS:您可以设置MAVEN_OPTS为maven操作设置maven.repo.local变量。这有点像直接传递环境变量,但适用于所有mvn次调用。请参阅Is there a way to tell maven where to place the artifacts?
  6. MAVEN_OPTS方式应该是您正在寻找的方式。