我编写了一个自定义Maven插件,可以生成一些资源以包含在最终的jar中。该插件由单个Mojo
类定义,目标为generate-files
。
我希望用户不要求为插件定义任何execution
,即:
<build>
<plugins>
<plugin>
<groupId>A</groupId>
<artifactId>my-plugin</artifactId>
</plugin>
</plugins>
</build>
在默认阶段(generate-files
)内已经执行唯一目标(generate-resources
)。
我已经尝试在lifecycle.xml
下定义我的新META-INF/maven
和components.xml
下的META-INF/plexus
,但据我了解,这只会创建一个新的打包类型,这意味着上面的内容可行但我必须定义<packaging>my-custom-type</packaging>
,在这种情况下我的插件已执行,但没有生成jar
,因为仅我的自定义生命周期的各个阶段都会被执行。
我希望我的插件可以使用jar
,war
和pom
打包类型(并生成jar
和war
等)。使用自定义打包类型意味着我必须通过复制和粘贴my-custom-type-jar
,my-custom-type-war
,{{}来定义my-custom-type-pom
和jar
以及war
等。 1}}等生命周期并添加我的自定义阶段...
这需要大量重复,而且,如果pom
生命周期得到更新,我必须修改jar
。
默认情况下,只是将我的插件的一个目标附加到某个阶段真的很难,还是我错过了一些明显的东西?
多种自定义包装类型真的是达到我想要的唯一方式吗?