maven-shade-plugin
Apache Maven Shade Plugin
jarを1つにまとめてみたりする
例
code:pom.xml
<project>
略
<build>
<plugins>
<!-- ここから -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<!-- 最新版に更新 -->
<version>3.6.1</version>
<excutions>
<excution>
<goals>
<goal>shade</goal>
</goals>
</excutios>
</excutions>
<configuration>
<filters>
<!-- 依存jarの署名ファイルを排除 -->
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
<transformers>
<!-- Service 系ファイルの統合 -->
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
<!-- Manifest ファイルの統合 -->
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>net.siisise.example.Main</Main-Class>
</mainfestEntries>
</transformer>
</transformers>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
</plugin>
<!-- ここまで -->
</plugins>
</build>
</project>
このプラグインは、依存関係を含むアーティファクトを uber-jar にパッケージ化し、一部の依存関係のパッケージをシェーディング (名前変更) する機能を提供します。
目標の概要
Shade プラグインには 1 つの目標があります。
shade:shade はpackagephaseにバインドされており、シェーディングされた jar を作成するために使用されます。
使用法
Shade プラグインの使用方法に関する一般的な手順は、使用方法のページに記載されています。より具体的な使用例を以下の例で説明します。 プラグインの使用法に関してご質問がある場合は、お気軽にユーザー メーリング リスト(English)にお問い合わせください。メーリング リストへの投稿はアーカイブされており、古いスレッドの一部として質問に対する回答がすでに含まれている可能性があります。したがって、メール アーカイブを参照/検索することも価値があります。 プラグインに機能が欠けている、または欠陥があると思われる場合は、問題トラッカー(English)に機能リクエストまたはバグレポートを記入できます。新しい問題を作成する場合は、懸念事項の包括的な説明を提供してください。特にバグを修正する場合、開発者が問題を再現できることが重要です。このため、デバッグ ログ全体、POM、または問題に添付されている小さなデモ プロジェクトが非常に歓迎されます。もちろんパッチも大歓迎です。貢献者はソース リポジトリからプロジェクトをチェックアウトでき、Maven を支援するためのガイドで補足情報を見つけることができます。 例
Shade プラグインの使用法をより深く理解するには、次の例を見てください。