appassembler-maven-plugin
Maven で各環境に応じたアプリケーション実行用のバッチファイルを作成するにはMojo project にて提供されている appassembler-maven-plugin を利用します。
http://mojo.codehaus.org/appassembler/
単純な例
プロジェクト作成。
> mvn archetype:create -DgroupId=etc9.app -DartifactId=app
app/pom.xml を以下のように編集します。
<project> ... <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>appassembler-maven-plugin</artifactId> <version>1.1</version> <configuration> <programs> <program> <mainClass>etc9.app.App</mainClass> <name>app</name> </program> </programs> </configuration> </plugin> </plugins> </build> ... </project>
実行してみます。
> mvn package appassembler:assemble
target 内の構成はこんな感じになります。デフォルトでWindows用のbatとshが作成されます。
app └─target ├─appassembler │ ├─bin │ │├─app │ │└─app.bat │ └─repo │ └─etc9 │ └─app │ └─app │ └─1.0-SNAPSHOT └─app-1.0-SNAPSHOT.jar
作成されたバッチファイルを実行できます。
> target/appassembler/bin/app.bat Hello World!
設定を少し変更
- mvn package で実行されるようにする
- JVMの拡張引数を設定する
- jarをlibフォルダに作成する
の変更をしてみます。
<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>appassembler-maven-plugin</artifactId> <version>1.1</version> <!-- packageスコープで実行されるようにする --> <executions> <execution> <goals> <goal>assemble</goal> </goals> <phase>package</phase> </execution> </executions> <configuration> <!-- JVM 引数を指定(EXTRA_JVM_ARGUMENTS) --> <extraJvmArguments>-Xms512m</extraJvmArguments> <!-- jarをlibディレクトリに出力 --> <repositoryLayout>flat</repositoryLayout> <repositoryName>lib</repositoryName> <programs> <program> <mainClass>etc9.app.App</mainClass> <name>app</name> </program> </programs> </configuration> </plugin> </plugins> </build>
同様に実行できます。
> mvn package > target/appassembler/bin/app.bat Hello World!
作成されるディレクトリ構成は以下のようになります。
app └─target ├─appassembler │ ├─bin │ │├─app │ │└─app.bat │ └─lib └─app-1.0-SNAPSHOT.jar