提交前未调用完成目标
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'
我已经像这样将自己的 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'