我在多模块项目中有以下maven结构:
aggregator-level-0
-- module-level-1 (jar)
-- aggregator-level-1
---- module-level-2.1 (jar)
---- module-level-2.2 (jar)
aggregateator-level-0 pom不仅是聚合器,还是其余模块的父(继承)。它包括一个DependencyManagement部分。
module-level-1包含module-level-2.1作为运行时依赖项,因此我在aggregate-level-0 pom的DependencyManagement部分添加了module-level-2.1。
当我在本地构建项目(maven 3.0.4)时,使用-o选项并将我的m2本地存储库清空,一切都像魅力一样。 Maven完美地解决了构建模块的顺序并很好地部署了工件。
当我在“jenkins”中执行相同操作时,构建失败。当解析父pom中的依赖关系管理部分时,它会尝试获取模块级别2.1,当然它会因为尚未创建/发布而失败。
这是预期的行为吗? Maven和Jenkins在不同时间获取依赖关系吗? 放入pom工件的依赖关系管理部分是不好的做法,这些工件将构建在从pom继承的子模块中?