ファイルをjarするために別のプラグイン(ant4Eclipse)を使用しています。 maven-jarプラグインの実行を回避する最良の方法は何ですか?
<plugin>maven-jar-plugin</plugin>
を削除しようとしました<exclude> ** / * < / exclude>
を試しました<skip>true</skip>
を試しました何もしなかった
Maven 3.0.x(私は3.0.2を試しました)では、_maven-jar-plugin
_の実行を存在しないフェーズにバインドすることで_default-jar
_を無効にできます @ bmarguliesが推奨 。残念ながら、これは2.2.1では機能しませんが、_<finalName>
_の実行に代替_<classifier>
_および_default-jar
_を設定することで、独自のjarに干渉しないようにすることができます。それでもjarは作成されますが、プロジェクトの2番目のアーティファクトとして設定され、作成したものを上書きしません。以下は、Maven 2とMaven 3の両方で機能する例です。
_<project>
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>test</artifactId>
<version>0.1-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>default-jar</id>
<phase>none</phase>
<configuration>
<finalName>unwanted</finalName>
<classifier>unwanted</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
_
_maven-jar-plugin
_を無効にすると、_maven-install-plugin
_でも問題が発生する可能性があります。 Maven 3では、_maven-jar-plugin
_と同じように無効化できます。存在しないフェーズに_default-install
_をバインドします。ただし、Maven 2では、_maven-install-plugin
_は_target/classes
_ディレクトリが存在する必要があり、プライマリアーティファクトが存在しない場合にダミーjarをインストールします。
これでうまくいくはずです。<id>default-jar</id>
と<phase/>
の使い方に注意してください。
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>default-jar</id>
<phase/>
</execution>
</executions>
</plugin>
</plugins>
</build>
私の場合、jarが空だったため、jarプラグインを無効にしたかっただけです。プラグイン構成でskipIfEmpty
オプションを使用できます
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<skipIfEmpty>true</skipIfEmpty>
</configuration>
</plugin>
これを宣言するとどうなりますか?
<packaging>pom</packaging>
それがあなたの探していることをしたとしても、注意してください。 jarが見つからないことに依存する他のmavenプロジェクトなど、マイナスの副作用があるかどうかはわかりません。
Maven 3.3.9を使用すると、以下が機能しました。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.2</version>
<executions>
<execution>
<id>default-jar</id>
<phase>none</phase>
<configuration>
<finalName>unwanted</finalName>
<classifier>unwanted</classifier>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>3.0.0-M1</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
したがって、maven-jar-pluginの場合、それを存在しないフェーズにバインドしました。 maven-install-pluginには、「スキップ」構成パラメーターを使用しました。 documentation について:「アーティファクトのインストールをバイパスするには、これをtrueに設定します。ローカルリポジトリにインストールする必要のないアーティファクトには、これを使用してください。」
Jarプラグインを、存在しないフェーズに明示的にバインドします。
他の人が言っているように、すべてをオフにする<packaging>pom</packaging>
を使用する以外は、オフにすることはできません。
2回生成されますが、実際の解決策は、jarプロセスをpackage
フェーズにバインドすることです。これは、デフォルトの後に実行されることが保証されているためです。同じJARファイルを上書きすると、元のJARファイルが使用されていた場所で使用されていることがわかります。
ファイルをjarするために別のプラグインを使用しています。 maven-jarプラグインの実行を回避する最良の方法は何ですか?
まず、jar:jar
ゴールは デフォルトでバインドpackage
タイプのパッケージを使用するプロジェクトのjar
フェーズです。次に、フェーズにバインドされたプラグインをアンバインドする方法はありません。したがって、別のプラグイン(?)を使用している場合は、2つのJARの生成を受け入れるか、パッケージを変更します(ただし、これがうまく機能するとは思えません)。