Maven发布目标绑定

时间:2013-03-03 11:08:02

标签: maven release maven-release-plugin

我想编写一个redmine插件来更新某些项目的版本。为了避免手动步骤,我想绑定一些发布插件执行目标。通常,我需要在选择版本号时创建新版本,在选择新版本之前关闭先前版本,等等......

现在,我知道发布阶段不是典型生命周期的一部分,但我怀疑它们可以像其他阶段一样“挂钩”(如预集成测试或后整合测试)

以下是我的尝试:

<execution>
    <id>prepare-release-test</id>
    <phase>maven-release-plugin:prepare</phase>
    <goals>
        <goal>list-issues</goal>
        <goal>list-versions</goal>
        <goal>list-users</goal>
        <goal>list-projects</goal>
    </goals>

<execution> 
    <id>prepare-test</id>
    <phase>maven-release-plugin:2.0:prepare</phase>
    <goals>
        <goal>list-issues</goal>
        <goal>list-versions</goal>
        <goal>list-users</goal>
        <goal>list-projects</goal>
    </goals>

但这些都没有奏效。当它与测试阶段结合时,它就会有效。

1 个答案:

答案 0 :(得分:1)

  

我知道发布阶段不是典型生命周期的一部分,但我怀疑它们可以像其他阶段一样“迷上”。

他们不是“阶段”。他们是“目标”,他们唯一的方式是你可以将他们的名字传递给maven执行。您无法将目标绑定到其他目标,就像将它们绑定到阶段一样。通常,您解决此问题的方法是定义activate manually or automatically modifies the default lifecycle bindings的个人资料。如果你想全力以赴,你也可以define your own lifecycle,但这似乎有点过分。但是,在发布插件的特定情况下,您还可以选择使用preparationGoalsgoals属性来自定义release:preparerelease:perform期间发生的情况。