2

別のアプリケーション用のプラグインを構築する 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 つ見つかりましたが、回答がありません。これは、最初にライフサイクル マッピングを作成するために使用したドキュメントです。ヘビー グーグルで調べても、関連していると思われるものは何も見つかりませんでしたが、十分に具体的な検索用語を見つけるのに苦労しています。

4

0 に答える 0