【问题标题】:Completion Goals Not Called Before Commit提交前未调用完成目标
【发布时间】:2015-07-13 07:26:18
【问题描述】:

我已将自己的 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 被称为“在转换回下一个开发版本之后但在提交之前”,但是在发布后我看到我的插件所做的更改仅作为本地更改,它们没有被提交.

我已经通过将scm:checkin 添加到completionGoals 标记来“修复”它,但我想知道为什么它不是自己提交的。可能是因为它是 Tycho 项目,并且搞砸了 Maven 生命周期?

【问题讨论】:

  • 正如您所提到的,文档准确地说明了它是如何工作的。如果您期望有所不同,我建议为它创建JIRA。除此之外,您是否使用了正确的 maven-release-plugin 版本?
  • @khmarbaise 不,我希望它完全按照文档所述工作,但 completionGoals 显然是在提交之后称为,而不是之前所述。我正在使用 2.5.1,这是新的(ish)。
  • 2.5.1 是旧版本。 2.5.2 是最新的。在这种情况下,我建议提交 JIRA 问题...
  • @khmarbaise 同样的问题在2.5.2中依然存在。
  • 好的。然后请提交 JIRA 票证...加上一个示例项目。

标签: maven tycho


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    感谢这个问题和这个问题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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-28
      • 2018-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-16
      • 2020-07-29
      • 2014-07-05
      相关资源
      最近更新 更多