別のアプリケーション用のプラグインを構築する Maven 3 プラグインを作成しています。プラグインは基本的に、いくつかの派手なマニフェストを含む JAR ファイルです。コンパイルされたクラスは、プラグインがホスト アプリケーションのプロダクション ビルドで動作するように後処理する必要があります。残念ながら、プラグインの処理済みバージョンは、ホストのデバッグ ビルドでは機能しません。したがって、2 つのアーティファクトを生成する必要があります。分類子debug
を含む生のクラスと、メインのアーティファクトとして後処理されたバージョンです。
独自のライフサイクル マッピングを使用して新しいパッケージ タイプを定義する Maven プラグインが動作しています。debug
ただし、アーティファクトを作成するにjar:jar
は、classifier
プロパティ セットを使用して呼び出す必要があります。ライフサイクル マッピングから Mojo 実行の構成を変更する方法を見つけることができませんでした。それは可能ですか?プラグインで提供されるスーパー POM を全員に使用させる必要がありますか?
参考までに、 my の関連部分を次に示します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 の質問が 1 つ見つかりましたが、回答がありません。これは、最初にライフサイクル マッピングを作成するために使用したドキュメントです。ヘビー グーグルで調べても、関連していると思われるものは何も見つかりませんでしたが、十分に具体的な検索用語を見つけるのに苦労しています。