我创建了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插件一起使用时,后一个插件会在[此处输入链接描述] <scm><connection>
2目标期间更改prepare
值的内容,因此在有效地调用执行者之前。这导致我的自定义规则失败,因为<scm><connection>
此时指向了标记。
所以我的问题是:有没有办法强制在Maven Release插件开始修改pom.xml
之前调用执行器?
ps:Jenkins工作分为两个步骤:mvn clean release:prepare
和mvn release:perform
。
答案 0 :(得分:2)
致电
mvn clean release:prepare
仅执行clean
阶段和prepare
目标。
您可以使用
mvn clean validate release:prepare
包含validate
阶段或
mvn clean maven-enforcer-plugin:enforce release:prepare
只是触发执法者插件