Application Assembler Maven Plugin

| # Comments | 1 Trackback
Application Assembler Maven Pluginのご紹介。

Javaアプリケーションを作る際にめんどくさいのがクラスパスの設定云々。
その辺のめんどくさいあたりをザックリと作ってくれるのがこのプラグインです。
依存するライブラリを収集して、Javaアプリケーションを実行するためのbat/shスクリプトを生成します。

これがあるとバッチ処理などをするコマンドラインアプリを作るのもお気楽になります。

Goals

appassemblerプラグインには3つのゴールがあります。

  • appassembler:assemble
    設定したアプリケーション用のbat/shスクリプトを生成します。
  • appassembler:create-repository
    appassemblerレポジトリを構築します。
  • appassembler:generate-daemons
    JSW(Java Service Wrapper)ベースのデーモンを生成します。

使い方

基本設定

appassemblerを利用することを宣言します。
また、bat/shスクリプトを生成するプログラムの、mainClass(mainクラス名)、name(スクリプト名)を指定します。
プログラムは複数指定することが出来ます。

以前に扱った奇妙な言語たちのための設定を例として取り上げます。

設定例

<project>

	・・・・

	<build>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>appassembler-maven-plugin</artifactId>
				<version>1.0</version>
				<configuration>
					<programs>
						<program>
							<mainClass>st.happy_camper.esoteric.hq9plus.HQ9Plus</mainClass>
							<name>hq9plus</name>
						</program>
						<program>
							<mainClass>st.happy_camper.esoteric.brainfuck.Brainfuck</mainClass>
							<name>brainfuck</name>
						</program>

	・・・・

					</programs>
				</configuration>
			</plugin>
		</plugins>

	・・・・

	</build>

	・・・・

</project>

実行

依存ライブラリを収集し、bat/shスクリプトを生成

$ mvn package appassembler:assemble

デフォルトではtarget/appassembler/binにスクリプトを生成、target/appassembler/repo以下にMaven2階層形式で依存ファイル群を収集します。

また、packageフェーズの実行はされないので、事前に実行しておく必要があります。
下で紹介する<executions>の設定をしておけばpackageフェーズでassembleさせることができるようになります。

設定

よく使う設定、便利な設定を紹介します。
その他の設定については、appassembler:assembleappassembler:create-repositoryappassembler:generate-daemonsを参照してください。

packageフェーズでassemble

appassembler:assembleをいちいち指定するとめんどくさいので、packageフェーズで自動的にassembleするようにします。

設定例

<project>

	・・・・

	<build>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>appassembler-maven-plugin</artifactId>
				<version>1.0</version>
				<executions>
					<execution>
						<goals>
							<goal>assemble</goal>
						</goals>
						<phase>package</phase>
					</execution>
				</executions>

	・・・・

			</plugin>
		</plugins>

	・・・・

	</build>

	・・・・

</project>

依存ライブラリをlibディレクトリに出力

デフォルトではいかにもMaven2っぽいディレクトリ階層に依存ライブラリが出来てしまうので、一般的なlibディレクトリに出力できるようにします。

設定例

<project>

	・・・・

	<build>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>appassembler-maven-plugin</artifactId>
				<version>1.0</version>
				<configuration>
					<repositoryLayout>flat</repositoryLayout>
					<repositoryName>lib</repositoryName>

	・・・・

				</configuration>
			</plugin>
		</plugins>

	・・・・

	</build>

	・・・・

</project>

JVM引数

JVMのメモリ設定などをスクリプトに含めておくことができます。

設定例

<project>

	・・・・

	<build>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>appassembler-maven-plugin</artifactId>
				<version>1.0</version>
				<configuration>
					<extraJvmArguments>-server -Xmx512m</extraJvmArguments>

	・・・・

				</configuration>
			</plugin>
		</plugins>

	・・・・

	</build>

	・・・・

</project>

含めておかなくても、実行時に指定することが出来ます。

$ JAVA_OPTS='-server -Xmx512m' bin/ws whitespace.wsc

トラックバック(1)

1年以上のご無沙汰でした。お久しぶりです。さすがにこれだけ期間が開くとHadoo... 続きを読む

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