提交前未调用完成目标

Completion Goals Not Called Before Commit

我已经像这样将自己的 Maven 插件添加到构建过程中:

    <plugins>
        <plugin>
            <artifactId>maven-release-plugin</artifactId>
            <configuration>
                <tagBase>...</tagBase>
                <preparationGoals>clean verify org.acme:my-super-cool-plugin:the-goal</preparationGoals>
                <completionGoals>org.acme:my-super-cool-plugin:the-goal"</completionGoals>
            </configuration>
        </plugin>
    </plugins>

    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.acme</groupId>
                <artifactId>my-super-cool-plugin</artifactId>
                <version>1.2.3</version>
                <executions>
                    <execution>
                        <id>my-super-cool-id</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>the-goal</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </pluginManagement>

现在 documentation 声明 completionGoals 被称为 "after transformation back to the next development version but before committing",但发布后我看到我的插件所做的更改仅作为本地更改,它们没有提交。

我已经通过将 scm:checkin 添加到 completionGoals 标签来 "fixed" 它,但我想知道为什么它没有自己提交。会不会是因为它是 Tycho 项目,而这搞砸了 Maven 生命周期?

documentation 实际上在另一个页面上声明只有 pom.xml 已提交,因此我发布的链接只是误导性的,并非完全错误。

感谢这个问题和这个问题 Maven Release plugin: Running specific preparationGoals & completionGoals in some modules of a project 我们能够按照我们想要的方式构建我们的发布过程 - 我们所需要的基本上是一个额外的内部版本号被添加到 pom.xml。

所以我们创建了一个这样的插件执行:

       <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>versions-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>set-new-build-number</id>
                    <phase>none</phase>
                    <goals>
                        <goal>set-property</goal>
                    </goals>
                    <configuration>
                        <property>our.build.number</property>
                        <newVersion>${newBuildNumber}</newVersion>
                    </configuration>
                </execution>
            </executions>
        </plugin>

然后我们在maven-release-plugin中引用执行

 <completionGoals>versions:set-property@set-new-build-number</completionGoals>

在递增到下一个 SNAPSHOT 版本后但在创建提交之前自动更改 pom 'prepare for next development iteration'