我正在编写一个Maven 3插件,可以为另一个应用程序构建插件。插件基本上是一个JAR文件,带有一些花哨的清单。需要对已编译的类进行后处理以使插件与主机应用程序的生成版本一起使用。不幸的是,插件的处理版本不适用于主机的调试版本。因此,我需要生成两个工件:带有分类器debug
的原始类和作为主要工件的后处理版本。
我有一个有效的Maven插件,它定义了一个带有自己生命周期映射的新打包类型。但是,为了创建debug
工件,我需要使用jar:jar
属性集调用classifier
。我无法找到一种方法来改变生命周期映射中Mojo执行的配置。这甚至可能吗?我是否必须让每个人都使用我的插件提供的超级POM?
供参考,这是我components.xml
的相关部分:
<?xml version="1.0" encoding="utf-8" ?>
<component-set>
<components>
<!-- snip other components, including ArtifactHandler -->
<component>
<role>org.apache.maven.lifecycle.mapping.LifecycleMapping</role>
<role-hint>my-packaging</role-hint>
<implementation>org.apache.maven.lifecycle.mapping.DefaultLifecycleMapping</implementation>
<configuration>
<lifecycles>
<lifecycle>
<id>default</id>
<phases>
<!-- snip other phases -->
<package>
org.apache.maven.plugins:maven-jar-plugin:jar
</package>
</phases>
</lifecycle>
</lifecycles>
</configuration>
</component>
</components>
</component-set>
我需要执行相当于这个POM片段:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>debug-jar</id>
<phase>package</phase>
<goal>jar</goal>
<configuration>
<classifier>debug</classifier>
</configuration>
</execution>
</executions>
</plugin>
我发现one SO question似乎与我正在寻找的东西相同,但它没有任何答案。我曾用This is the documentation创建生命周期映射。沉重的谷歌搜索没有发现任何看似相关的东西,但我在提出足够具体的搜索条件时遇到了麻烦。