maven enforcer插件忽略来自maven ci的<revision>属性

时间:2018-03-14 18:37:15

标签: java maven continuous-integration pom.xml parent-pom

我使用maven ci friendly样式从属性设置pom版本。在我详细了解发生了什么之前,让我告诉你我的pom和项目是如何构建的。

项目结构

base-project-pom 
|_ reactor-parent
   |_ service
   |_ service-tests

base-project-pom 有一个名为maven-enforcer-plugin的插件,它在验证阶段执行。

在reactor-parent pom(pom包装)中,我使用以下代码设置版本 -

<groupid>...</groupid>
<artifactid>...</artifactid>
<version>${revision}</version>

<properties>
  <revision>0.0.1-SNAPSHOT</revision>
</properties>

我在两个叶子项目中使用相同的${revision}标记,即服务和服务测试。

问题是maven-enforcer插件无法确定${revision}标记。

这是错误消息(丢弃机密部分,如网址) -

Failure to find ....service:reactor-parent:pom:${revision} in http://... was cached in the local repository

  com.example.service:reactor-parent:pom:${revision}

为了摆脱这个问题,我尝试了不同的解决方案 -

1。使用maven-flatten插件 -

我已尝试使用此插件来压扁pom。它没有用。在我看来,问题可能与执行这两个插件(展平和执行器)的阶段有关。

2。在不同阶段执行执法者

在流程资源阶段执行展平,而在验证阶段执行执行程序。我在验证阶段和安装阶段尝试执行执行程序。它没有用。

第3。叶子项目中的版本属性标记。

我已尝试在leaf项目中为修订设置属性标记。这也没有奏效。

任何指针或方向都表示赞赏。

更新(2018年5月29日) - 截至今天,我发现这是maven-enforcer插件中的已知错误。

Issue Tracker

0 个答案:

没有答案