当我使用 Maven 构建时,我看到了一个奇怪的行为。我发现 Maven 使用的目录中的本地存储库与我在 settings.xml 中配置的目录不同。更糟糕的是,我不知道maven正在使用的目录来自哪里。 为了进行调查,我在执行 maven cmd 时启用了 -X,并且可以看到使用了setting.xml 和本地 repo 目录。 我可以看到settings.xml(全局和用户)是我配置的。而且本地的repo目录和我在tag中配置的完全不一样(只在user settings.xml中配置)。
我不明白为什么。有人有想法吗?是否有其他配置文件可供 maven 检查以覆盖 settings.xml 中的 localRepository 配置?
提前致谢。
最佳答案
既然您确定全局和用户设置文件,那么本地存储库可以被系统/用户属性“maven.repo.local”覆盖 这可以通过多种方式指定:
作为用户属性:来自 maven cli,如 mvn -Dmaven.repo.local= ...
作为系统属性:在 MAVEN_OPTS 中设置时,例如 -Dmaven.repo.local=(可以在 maven.bat 或 maven.sh 中设置)
如果 maven.repo.local 没有设置为用户或系统属性,那么 maven 将首先在用户设置中查找 localRepository 配置,然后在全局设置中查找: 如果您在 localRepository (repo/dir1) 中指定相对路径,则将在您的项目目录下使用指定路径创建 repo 目录 如果没有可用的选项,则使用路径/.m2/repository
关于java - 为什么maven在settings.xml中未配置的目录中使用本地存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60493567/