1

ビルド内で 2 つの Maven プラグインを使用しています。そのうちの 1 つは、もう 1 つのファイルを準備します。具体的には、maven-assembly-plugin を使用して jar ファイルをビルドし、次に jdeb を使用して debian パッケージを作成しています。私の問題は、2 つ目 (jdeb) が有効になると、最初のもの (maven-assembly-plugin) が実行されないことです。

pom.xmlはここにいます:https://gist.github.com/knyttl/fa956d56b15bc2849d60

ありがとう!

編集:

プロファイルも使用しようとしました: https://gist.github.com/knyttl/dd43a7e7df87c406b823

しかし、呼び出されたときにも期待どおりに機能しません: mvn package -Passembly,debian. 常に-Pパラメータを記述する必要がありますか? 実行する「デフォルト プロファイル」を定義する方法はありますか? mvn package両方のプロファイルを実行するためだけに呼び出したいと思います。

4

2 に答える 2

2

アセンブリ プラグインはexecution. 次のように、アセンブリ プラグインに実行を追加します。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <descriptors>
            <descriptor>jarlib.xml</descriptor>
        </descriptors>
        <outputDirectory>assembly</outputDirectory>
        <workDirectory>target/assembly/work</workDirectory>
        <appendAssemblyId>false</appendAssemblyId>
        <finalName>...</finalName>
        <attach>false</attach>
        <archive>
            <manifest>
                <mainClass>...</mainClass>
            </manifest>
        </archive>
    </configuration>
    <executions>
        <execution>
            <id>do-assembly</id>
            <goals>
                <goal>single</goal>
            </goals>
            <phase>package</phase>
        </execution>
    </executions>
</plugin>

また、jdeb の前にアセンブリ プラグインを実行する場合は、アセンブリ プラグインが jdeb の前に POM で定義されていることを確認してください。 Maven 3.0.3 の時点で、同じフェーズで実行するように定義されたプラグインは、POM の順序を使用します (この順序が任意になる前)。

特定の状況でプラグインの実行を無効にしたい場合を除き、プロファイルを使用する必要はありません。

于 2013-07-21T13:14:45.770 に答える