Java maven enforcer插件忽略<;修订>;来自maven ci的属性
我正在使用样式从属性设置pom版本。在我详细介绍正在发生的事情之前,让我告诉您我的pom和项目是如何构建的 项目结构Java maven enforcer插件忽略<;修订>;来自maven ci的属性,java,maven,continuous-integration,pom.xml,parent-pom,Java,Maven,Continuous Integration,Pom.xml,Parent Pom,我正在使用样式从属性设置pom版本。在我详细介绍正在发生的事情之前,让我告诉您我的pom和项目是如何构建的 项目结构 base-project-pom |_ reactor-parent |_ service |_ service-tests 基本项目pom有一个名为maven enforcer plugin的插件,该插件在验证阶段执行 在反应堆父级pom(pom包装)中,我使用以下代码设置版本- <groupid>...</groupid> <ar
base-project-pom
|_ reactor-parent
|_ service
|_ service-tests
基本项目pom有一个名为maven enforcer plugin的插件,该插件在验证阶段执行
在反应堆父级pom(pom包装)中,我使用以下代码设置版本-
<groupid>...</groupid>
<artifactid>...</artifactid>
<version>${revision}</version>
<properties>
<revision>0.0.1-SNAPSHOT</revision>
</properties>
为了解决这个问题,我尝试了以下不同的解决方案-
1。使用maven Flatte插件-
我已经尝试使用这个插件来扁平化pom。它不起作用。在我看来,这个问题可能与执行这两个插件(flatten和enforcer)的阶段有关
2。在不同阶段执行执行者
展平在流程资源阶段执行,而强制器在验证阶段执行。我尝试在验证阶段和安装阶段执行enforcer。它不起作用
3。叶项目中的修订属性标记。
我已尝试在leaf项目中设置属性标记以进行修订。这也没用
任何指示或方向都是值得赞赏的
更新(2018年5月29日)-截至今天,我发现这是maven enforcer插件中已知的bug
首先,您使用哪个Maven版本?第二,你使用哪个版本的maven enforcer插件?你试过注释maven enforcer插件并检查构建是否有效吗?我使用的是maven版本3.5.2和maven enforcer插件版本3.0.0-M1。是的,如果我跳过maven enforcer检查,构建工作正常。其他详细信息-正是此规则失败,无法确定${revision}代表什么-
规则6:org.apache.maven.plugins.enforcer.RequirePluginVersions
Failure to find ....service:reactor-parent:pom:${revision} in http://... was cached in the local repository
com.example.service:reactor-parent:pom:${revision}