blog1.mammb.com
と関連して
maven-assembly-pluginの利用
Maven Assembly Plugin を使うと、外部の依存jarファイルを解凍して、プロジェクトの成果物と合わせて1つの jar ファイルを作成できます。FatJar なんて言われています。
<?xml version="1.0"?> <project ・・ ・・ <build> <plugins> ・・ <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.2</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>etc9.app.App</mainClass> </manifest> </archive> </configuration> </plugin> ・・ </plugins> </build> ・・ </project>
descriptorRef 要素に jar-with-dependencies を指定します。以下の定義が事前定義されています。
- bin:依存ライブラリ以外
- jar-with-dependencies:プロジェクトと外部依存ライブラリを 1 つの jar ファイルにまとめる
- src:ソース配布用でpom.xmlなども含まれる
- project:プロジェクト全体をまとめる
上記の内容の詳細は assembly Descriptor として以下で参照できます。
http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html
packageフェーズで動作させる
通常は以下のように execution を指定してpackageフェーズで動くようにするでしょう。
<project ・・ ・・ <build> ・・ <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.2</version> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>etc9.app.App</mainClass> </manifest> </archive> </configuration> </plugin> ・・ </plugins> ・・ </build> </project>
maven-shade-pluginでもできる
maven-shade-plugin でも同様のことが行えます。以下のとおり。
<project ・・ ・・ <build> ・・ <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>1.2.1</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <finalName>sample-${project.version}</finalName> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>etc9.app.App</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> ・・ </plugins> ・・ </build> </project>
Apache Maven 3クックブック Javaソフトウェア開発のための特選レシピ集
- 作者:Srirangan
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2012/03/02
- メディア: 大型本
Maven: The Definitive Guide (English Edition)
- 作者:Sonatype Company
- 出版社/メーカー: O'Reilly Media
- 発売日: 2009/02/09
- メディア: Kindle版