0

我创建了一个自定义 Maven 强制执行规则。此规则将检查<scm><connection>值的内容以确保它指向trunkbranches/*(即不是标记)。该执行器的配置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>在 [enter link description here] prepare2目标期间更改值的内容,因此在有效调用执行器之前。这导致我的自定义规则失败,因为此时<scm><connection>指向标签。

所以我的问题是:有没有办法在 Maven 发布插件开始修改之前强制调用执行器pom.xml

ps:Jenkins作业分为2个步骤:mvn clean release:preparemvn release:perform.

4

1 回答 1

2

你打电话时

mvn clean release:prepare

只有clean阶段和prepare目标被执行。

你可以使用

mvn clean validate release:prepare

包括validate阶段或

mvn clean maven-enforcer-plugin:enforce release:prepare

触发强制插件

于 2014-07-22T11:23:15.850 回答