我正在编写一个 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>
我发现一个 SO 问题似乎与我正在寻找的东西相同,但它没有任何答案。这是我最初用来创建生命周期映射的文档。大量谷歌搜索没有出现任何似乎相关的内容,但我无法找到足够具体的搜索词。