3

很难为我的问题找到合适的搜索查询,所以我希望它不是重复的。

我正在开发目标很少的 Maven 插件。我想将其中两个组合在链中(生命周期?)。在执行目标之前clean-checkout,我想先执行checkout目标。我正在使用注释方法并尝试使用@Execute注释来指出应该执行的目标。该插件编译但没有按照我假设的方式执行,因为执行时没有前面的checkout目标clean-checkout

@Mojo(name = "checkout", defaultPhase = LifecyclePhase.GENERATE_SOURCES)
public class Checkout extends AbstractMojo {

@Mojo(name = "clean-checkout", defaultPhase = LifecyclePhase.GENERATE_SOURCES)
@Execute(goal = "checkout", phase = LifecyclePhase.GENERATE_SOURCES)
public class CleanCheckout extends AbstractMojo {

没有defaultPhasephase属性,构建失败。

我在哪里做错了?

4

1 回答 1

1

定义自定义生命周期可能会对您有所帮助。两年前,我更详细地分析了 maven-release-plugin 并注意到它们使用自己的生命周期。

在这里你可以找到他们的生命周期定义: http: //svn.apache.org/viewvc/maven/release/tags/maven-release-2.3.2/maven-release-manager/src/main/components-fragment.xml?视图=标记

此外,我在 Sonatype 的 Mavenbook 中找到了详细信息:http: //www.sonatype.com/books/mvnref-book/reference/writing-plugins-sect-plugins-lifecycle.html

这个有趣的博客也可能对您有所帮助:http: //www.sonatype.com/people/2009/08/create-a-customized-build-process-in-maven/

于 2012-09-30T07:01:06.767 回答