今回はMaven Jar Pluginを見てみます。
主に
JWS(Java Web Start)などで配布するjarファイルへの署名もこのプラグインで行うことができます。
主に
<packaging>jar</packaging>の時のpackageフェーズ担当です。JWS(Java Web Start)などで配布するjarファイルへの署名もこのプラグインで行うことができます。
Goals
Jarプラグインには4つのゴールがあります。jar:jar
メインのクラスファイル、リソースをjarにまとめます。jar:test-jar
テストのクラスファイル、リソースをjarにまとめます。jar:sign
jarファイルに署名します。jar:sign-verify
署名したjarファイルを検証します。
使い方
メインのクラスファイル、リソースをjarにまとめる
$ mvn jar:jar<packaging>jar</packaging>の場合packageフェーズに紐付けられているので、フェーズの指定をすれば実行できます。$ mvn packageテストのクラスファイル、リソースをjarにまとめる
$ mvn jar:test-jarjarファイルに署名する
$ mvn jar:sign -Dkeystore=/path/to/your/keystore -Dstorepass=yourstorepassword -Dalias=youralias引数である
keystore、storepass、aliasについては、jarsigner - JAR 署名および検証ツールを参照してください。署名したjarファイルを検証する
$ mvn jar:sign-verify
設定
よく使う設定、便利な設定を紹介します。その他の設定については、jar:jar、jar:test-jar、jar:sign、jar:sign-verifyを参照してください。
includes / excludes
jar/test-jarファイルに含める/除外するファイルパターンを指定します。設定例
<project>
・・・・
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/*.xml</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
・・・・
</build>
・・・・
</project>archive/manifest/mainClass
実行可能jarファイルを作成する場合のmainクラスを指定します。設定例
<project>
・・・・
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>st.happy_camper.sample.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
・・・・
</build>
・・・・
</project><archive>タグによる設定では、他にもManifestファイルの設定などができるようになっています。その他の設定についてはMaven Archiver、Guide to Working with Manifestsを参照してください。
packageフェーズに署名もする
署名つきのjarファイルを生成する場合、別途mvnコマンドを実行しなくてもいいようにpackageフェーズにjar:signゴールを実行するようにします。設定例
<project>
・・・・
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
<configuration>
<keystore>/path/to/your/keystore</keystore>
<alias>youralias</alias>
<storepass>yourstorepassword</storepass>
<verify>true</verify>
</configuration>
</plugin>
</plugins>
・・・・
</build>
・・・・
</project>上記設定の
<goal>にtest-jarを加えれば、テストのjarファイルも同時に出力、などということもできます。
