java - 为什么 maven 使用 settings.xml 中未配置的目录中的本地存储库
问题描述
当我使用 maven 构建时,我看到了一个奇怪的行为。我发现 maven 正在使用与我在 settings.xml 中配置的目录不同的目录中的本地 repo。更糟糕的是,我不知道maven使用的目录来自哪里。为了调查,我在执行 maven cmd 时启用了 -X,我可以看到使用了 setting.xml 和本地 repo 目录。我可以看到 settings.xml(全局和用户)是我配置的。而且本地repo目录和我在tag中配置的完全不同(只在用户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
推荐阅读
- ios - Objective-c:UIStackView 的动态大小,取决于它的内容
- c++ - 让 GDB 8.0.1 在 OSX High Sierra 10.13.4 上的 CLion 中工作
- ms-access - 从 TextBox 字段中检索包含输入掩码的值 - Access VBA 2016
- api - 无法通过 API 成功完成在 TFS 中创建错误
- ios - Swift 字符串作为 UIColor 对象
- javascript - baguetteBox.js 不起作用并在页面底部显示控件
- kotlin - 如何为类型别名的伴随对象定义扩展函数?
- java - Android:获取 zip 中的文件数量(使用存储卷/存储访问框架)
- ms-access - 无法在 MS Access 上设置数据库密码
- ruby-on-rails - Node / NPM 依赖于 Ruby on Rails 引擎 gem 资产管道