maven - 异常关系设置中的Maven无法访问父pom
问题描述
我有一个 Maven 项目,我需要共享 2 个级别的常见项目特征。
一层是项目范围的东西,比如远程 Maven 仓库(Artifactory)、插件版本、deps 版本。
另一个是操作到 Maven 生命周期的复杂映射,为特殊运行时平台的“模块”共享。
父母嵌套:
com.mycompany:projectfoo-parent
^-- parent of:
com.mycompany:projectfoo-module-parent
每个子项目如下所示:
subprojectA/pom.xml [ROOT] <--parent-- projectfoo-parent
subprojectA/modules/ModuleX/pom.xml [MODULE] <--parent-- projectfoo-module-parent
subprojectA/modules/ModuleY/pom.xml [MODULE] <--parent-- projectfoo-module-parent
所有父母都在远程 Maven 存储库(SNAPSHOTS)中。
现在,在绿色领域(例如 CI 或 with -Dmaven.repo.local=localRepo
)构建时会出现问题:
[FATAL] Non-resolvable parent POM for com.mycompany:projectfoo-moduleX:1.0.0-SNAPSHOT: Could not find artifact com.mycompany:projectfoo--module-parent:pom:1.0.0-SNAPSHOT and 'parent.relativePath' points at no local POM @ line 9, column 13
[FATAL] Non-resolvable parent POM for com.mycompany:projectfoo-moduleY:1.0.0-SNAPSHOT: Could not find artifact com.mycompany:projectfoo--module-parent:pom:1.0.0-SNAPSHOT and 'parent.relativePath' points at no local POM @ line 9, column 13
这-X
表明 Maven 甚至没有向远程仓库询问这些 POM。
我试图将公司的远程 Maven 存储库放置到父级、模块父级、到settings.xml
模块的 pom.xml,......没有任何帮助。
我应该怎么做才能让 Maven 在远程仓库中查找这些父 POM?
我的设置是否有效?还是要求(Maven)子模块的父模块必须是包含它的子模块<modules>
?据我所知,子模块可以有任意父级。
对我来说,一个解决方法可能是在运行 Maven 之前将父 POM 和install
它们带到本地 repo,因为一旦它在那里,构建就可以正常工作。这也意味着id 和版本都很好。此外,我检查了 repo ID 和凭据在settings.xml
. 为 repo 启用了快照。Maven 文档在这里。
解决方案
推荐阅读
- html - 具有不同高度的内联块元素内的间隙
- javascript - 了解如何将 ._forEach 变成 _.map
- java - 如何在 java/hibernate/mysql 中加入 2 个或更多表?
- c - 有没有更好的方法从 C 语言的控制台中接受结构中的用户全名?
- javascript - 使用 js 中的正则表达式删除某些区域的引号
- c#-4.0 - 这个错误怎么可能?使用 Imazen.WebP.SimpleDecoder '检测到无效的 WebP 标头'
- javascript - React JS - 从 JSON 数组生成 div 列表
- python - 遍历所有 csv 文件的目录并为每个单独的(csv)文件创建 kml 并使用文件名保存
- java - JPA OneToMany:不可能获得实体的孩子
- vue.js - Vuejs进入kubernetes集群和nginx入口刷新时返回404