【发布时间】:2014-07-22 19:23:15
【问题描述】:
我创建了a custom Maven enforcer rule。此规则将检查<scm><connection> 值的内容,以确保它指向trunk 或branches/*(即不是标签)。
这个执行器在pom.xml 中是这样配置的:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.3.1</version>
<dependencies>
<dependency>
<groupId>my.company</groupId>
<artifactId>maven-release-enforcer</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>enforce-release-check</id>
<goals>
<goal>enforce</goal>
</goals>
<phase>validate</phase>
<configuration>
<rules>
<releaseCheck implementation="my.company.maven.release.enforcer.MavenReleaseEnforcer"/>
</rules>
</configuration>
</execution>
</executions>
</plugin>
不幸的是,当我们将它与 Maven Release 插件一起使用时,后者插件在其 [在此处输入链接描述]prepare2 目标期间更改了 <scm><connection> 值的内容,因此在执行器被有效调用之前.这会导致我的自定义规则失败,因为此时<scm><connection> 指向一个标签。
所以我的问题是:有没有办法在 Maven 发布插件开始修改 pom.xml 之前强制调用执行器?
ps:Jenkins 作业分为 2 个步骤:mvn clean release:prepare 和 mvn release:perform。
【问题讨论】:
标签: java maven maven-release-plugin maven-enforcer-plugin