我想编写一个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>
但这些都没有奏效。当它与测试阶段结合时,它就会有效。
答案 0 :(得分:1)
我知道发布阶段不是典型生命周期的一部分,但我怀疑它们可以像其他阶段一样“迷上”。
他们不是“阶段”。他们是“目标”,他们唯一的方式是你可以将他们的名字传递给maven执行。您无法将目标绑定到其他目标,就像将它们绑定到阶段一样。通常,您解决此问题的方法是定义activate manually or automatically modifies the default lifecycle bindings的个人资料。如果你想全力以赴,你也可以define your own lifecycle,但这似乎有点过分。但是,在发布插件的特定情况下,您还可以选择使用preparationGoals
和goals
属性来自定义release:prepare
和release:perform
期间发生的情况。