Maven Jar Plugin

| # Comments
今回はMaven Jar Pluginを見てみます。

主に<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-jar

jarファイルに署名する

$ mvn jar:sign -Dkeystore=/path/to/your/keystore -Dstorepass=yourstorepassword -Dalias=youralias

引数であるkeystorestorepassaliasについては、jarsigner - JAR 署名および検証ツールを参照してください。

署名したjarファイルを検証する

$ mvn jar:sign-verify

設定

よく使う設定、便利な設定を紹介します。
その他の設定については、jar:jarjar:test-jarjar:signjar: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 ArchiverGuide 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ファイルも同時に出力、などということもできます。

comments powered by Disqus

Twitter Icon

AdSense

Creative Commons License
このブログはクリエイティブ・コモンズでライセンスされています。
Powered by Movable Type 5.14-ja

Google検索

カスタム検索

2013年10月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31