倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

Assembly -- 実行可能 Jar ファイルを作成する

今回は assembly として「実行可能な Jar ファイル」が作成されるようにしてみましょう。

POM ファイルの設定


新しく追加する要素は <configuration> 要素下の <archive> 要素です。

<?xml version="1.0"?>
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.sample</groupId>
  <artifactId>sample</artifactId>
  <version>1.0</version>

  <build>
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>

          <archive>
            <manifest>
              <mainClass>org.sample.Main</mainClass>
            </manifest>
          </archive>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

<mainClass> 要素下に指定しているのは main メソッドがあるクラスです。 この指定によって、Jar ファイル内の META-INF フォルダ下に MANIFEST.MF ファイルが作成され、

Main-Class: org.sample.Main

というエントリが追加されます。

assembly の作成


assembly の作成方法は、前々回前回と同じです。 

上記のサンプル POM の場合は

mvn assembly:assembly

を実行すれば assembly が作成されます。

また、前回のように <executions> 要素を書いておけば、

mvn package

を実行すれば assembly が作成されます。

どちらも target フォルダ下に sample-1.0-jar-with-dependencies.jar という assembly が作成されます。

Jar ファイルの実行


assembly プラグインとは関係ありませんが、実行可能 Jar ファイルの実行の仕方を載せておきます。 コマンド・プロンプトを開いて、assembly の実行可能 Jar ファイルがあるフォルダ上で以下のコマンドを実行するだけです:

java -jar sample-1.0-jar-with-dependencies.jar

このコマンドで実行できない場合は、以下の環境変数を設定してみてください(環境変数の設定の仕方は省略します):

  • JAVA_HOME : JDK のインストール・フォルダへのパス
  • CLASSPATH : ${JAVA_HOME}/lib/tools.jar (Windows では %JAVA_HOME%\lib\tools.jar)
  • PATH : ${JAVA_HOME}/bin (Windows では %JAVA_HOME%\bin)

Apache Maven 2.0入門 Java・オープンソース・ビルドツール

Apache Maven 2.0入門 Java・オープンソース・ビルドツール