Nov 30, 2009
Maven2 で依存するライブラリも jar に格納する方法
通常 Java のアプリケーションは複数の jar で構成されることが多い。 log4j、Jakarta Commons、・・・といったライブラリを普通に使うと数十の jar になってしまうこともしばしば。 Java Web Start を使わずに、jar を Web サーバ上に設置してダウンロード→ダブルクリックで実行、としたい場合など複数の jar に分かれていると困ることもある。 Maven2 では maven-shade-plugin を利用することで依存するライブラリも含んだ jar を作成することができる。
- Maven Shade Plugin
- http://maven.apache.org/plugins/maven-shade-plugin/index.html
maven-shade-plugin の使い方
pom.xml に下記を追記する。 <finalName> には生成する jar のファイル名を、<mainClass> には実行可能なクラスを指定する。
<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>myapp</finalName>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>jp.in_vitro.myapp.Main</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
package goal を指定して Maven2 を起動すると、指定したファイル名で dependencies を全て含んだ jar が生成される。
$ mvn clean package
TrackBack ping me at
http://www.in-vitro.jp/blog/index.cgi/Maven/20091130_01.trackback
writeback message: Ready to post a comment.
