1

maven-assembly-plugin を使用して zip ファイル アセンブリを生成しようとしています。私が残した問題は2つだけで、構成だけで解決できるかどうか疑問に思っていますが、最後の手段として、maven-assembly-pluginを拡張する独自のmavenプラグインを作成することも検討しています

不足している 2 つのピースは、

  1. インクルード パターンに一致する各依存関係を独自の に配置しoutputDirectoryます。
    これは私のアセンブリの関連部分です

    <moduleSet>
        <binaries>
            <dependencySets>
                <dependencySet>
                    <outputDirectory>module</outputDirectory>
                    <useTransitiveDependencies>false</useTransitiveDependencies>
                    <includes>
                        <include>com.test.feature.*:*:jar</include>
                    </includes>
                </dependencySet>
            </dependencySets>
            <unpack>false</unpack>
        </binaries>
    </moduleSet>
    

    com.test.feature.*これにより、moduleというフォルダーにgroupId を持つモジュールのすべての依存関係が配置されます。これは私にとってはうまくいきます

    module/
       com.test.feature.firstModule.jar
       com.test.feature.secondModule.jar
    

    私が必要としているのは、一致する依存関係のそれぞれを独自のフォルダーに移動する方法です。うまくいけば、フォルダー名は依存関係の artifactId になります (必須ではありません)。

    firstModule/
       com.test.feature.firstModule.jar
    secondModule/
       com.test.feature.secondModule.jar
    

    for each 依存関係を作成できることはわかっていますdependencySetが、これを可能な限り将来的に保証することを目的としています。それぞれに 1 つ作成する場合は、将来、com.test.feature の下にあるすべての新しいアーティファクトに対して新しいセットを作成することを覚えておく必要があります。私の最大の (しかし盲目的な) 希望は、依存関係ごとに置き換えられるある種のプロパティ ${dependencyName} です。outputDirectory

  2. 依存関係とそのフォルダーに関する情報を含むxmlファイルを生成し
    ます

    <module dir="firstModule" version="1.0-SNAPSHOT />
    <module dir="secondModule" version="2.1-SNAPSHOT />
    

    生成された xml は、zip アセンブリの一部になります。

これら 2 つのこと、またはそのうちの 1 つをバニラ アセンブリ プラグインで実行できますか? そうでない場合、別のプラグインを拡張するプラグインを作成することは可能ですか? プラグインをゼロから作成するためのチュートリアルを見たばかりで、標準プラグインの 1 つに機能を追加するだけではありません。

4

1 に答える 1

0

Q1:artifactId parf otoutputDirectoryの値として 使用:

<outputDirectory>module/${artifact.artifactId}</outputDirectory>

Q2: すぐに解決できる解決策はないと思います。独自のプラグインを作成してください ;)

于 2014-01-17T13:24:37.977 に答える