我想提供一个带有自定义<packaging>
的maven插件,它提供了复杂的生命周期。作为生命周期的一部分,我需要在不同的阶段中使用不同的配置运行maven-compiler-plugin 2次。我想让这个包装尽可能简单易用。目标是该插件的所有消费者必须做的是选择新的包装而不必进行任何插件执行配置:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>some.other.group</groupId>
<artifactId>something-useful</artifactId>
<version>1.0.0</version>
<packaging>my-maven-plugin-jar</packaging>
...
<build>
<plugins>
<plugin>
<groupId>my.group.id</groupId>
<artifactId>my-maven-plugin</artifactId>
<version>0.0.1</version>
<extensions>true</extensions
</plugin>
</plugin>
</build>
</project>
然后我的自定义生命周期将绑定我需要的所有目标,包括编译器。问题是,每个编译器传递正在编译不同的源(使用<includes> and <excludes>
到不同的目的地(使用outputDirectory)并且我无法找到任何方法来配置它们而不在pom使用的<executions>
子元素中这样做我的插件。我可以用原型做到这一点,但在我看来,用自定义包装来做这件事会更优雅。有什么建议吗?