【发布时间】:2020-06-27 23:43:11
【问题描述】:
背景:
我正在使用 maven 3.5 并且有一个“主”聚合器项目,它有 4 个模块(同时使用聚合和继承)。
我还有 30 个独立的子项目,包括单模块和多模块,每个都继承自这 4 个模块之一。
问题:
我想在子项目的<parent><version> 标记中使用${revision},但我观察到的是maven 在扩展${revision}(到<properties><revision> 中指定的值)之前试图解析父级。这导致 maven 无法解析父项目,因为它正在寻找父项目的字面“${revision}”版本。
问题
${revision}确实不适用于跨项目继承吗?有什么解决办法吗? (同时尽量避免使用 maven-versions 插件)
注意:我可以在单个多模块项目中毫无问题地使用 ${revision} - 这不是问题。
【问题讨论】:
-
那么 30 个子项目中的每一个都有 4 个模块之一作为父项目?
-
是的,没错——它们是通过继承链接起来的
-
所以我假设这四个模块都是POM项目。您是否在最顶层的 POM 中定义了属性
revision? -
是的 pom 项目,最上面的修订。子项目中也设置了修订属性,因此它知道如何找到父项目(即在nexus/artifactoy中)
标签: maven continuous-integration maven-versions-plugin flatten-maven-plugin