Help us understand the problem. What is going on with this article?

Mavenで実行可能jarをビルドする方法

More than 3 years have passed since last update.

はじめに

すこし前にMavenという壁にぶち当たり、Mavenってそもそものなんだというところから、実行可能jarファイルをビルドするところまでを勉強しました。

今回は、その時勉強したことの備忘録を兼ね、いろんなところからかき集めた実行可能jarをもっともシンプルに作る方法をご紹介します。

他にもっと簡単にできる方法をご存じだという方は、ご指摘などいただけると幸いです。
Mavenの基本的な使い方は、別に記事を書きましたので、よろしければそちらもご覧ください。

1. 実行可能jarとは

java -jar <jarファイル名>コマンドで実行できるjarファイルのことです。
通常javaで作ったプログラムは、実行可能jarとしてビルドしないと、実行するとき

java -classpath <jarファイル名> <mainがあるクラス名> <コマンドライン引数>

のように、実行対象のjarファイルと、クラス・パスを別に指定する必要がありますが、実行可能jarとしてビルドすると、初めに紹介したコマンドだけで実行できるようになります。
Windowsなど、GUI環境であれば、ダブルクリックで実行することも可能です。
その場合は、コンソールアプリケーションだと厳しいですが・・・

話はそれますが、javaを使用したGUIプログラムを作る方法も、そのうち記事にしようと思っているので、興味のある方は首を長くしてお待ちください。

2. mavenによるビルド

ここからは本題の、Mavenを使って実行可能jarをビルドする方法をご紹介します。
この記事では、Eclipseを使用し、Mavenの基本的な使い方は理解している前提で話を進めます。
「Mavenって聞いたことはあるけど、なんなのかはよーわからん」というような方は、別の記事でMavenをある程度使えるようなってから続きをご覧ください。

その手の記事は筆者も一度書いていますので、よろしければこちらをご覧ください。

2.1. Mavenプロジェクトの作成

Eclipseでも、Mavenの駒野でも、どちらでもよいのですが、とりあえずMavenプロジェクトを作成します。
今回は実行可能jarがビルドできれば何でもよいので、Hello Worldのソースファイルでも作って入れておきます。

2.2. maven-assembly-pluginの導入

Mavenで実行可能jarファイルをビルドするには、assembly-pluginというMavenのプラグインを使用します。

pom.xmlに次の内容を記載し、プラグインを追加してください。

<!-- 実行可能jarファイル用のプラグイン -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.0.0</version>
    <configuration>
        <finalName>test</finalName>
        <descriptorRefs>
            <!-- 依存するリソースをすべてjarに同梱する -->
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <archive>
            <manifest>
                <mainClass>main.Main</mainClass>
            </manifest>
        </archive>
    </configuration>
    <executions>
        <execution>
            <!-- idタグは任意の文字列であれば何でもよい -->
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

2.3. jarファイルの生成

ここまでで、Mavenの設定はすべて終了です。
あとは、おなじみのコマンドでビルドを行うだけです。
作成したプロジェクトのpom.xmlのあるディレクトリで、次のコマンドを実行してください。

mvn install

すると、mavenがガリガリと動いて、targetディレクトリにjarファイルが生成されているはずです。
jarファイルは2つ生成されていると思いますが、「jar-with-dependencies」が付いているほうが実行可能jarファイルです。

そのjarファイルをコマンドで実行します。
java -jar 生成したjarファイル
いかがでしょうか?jarファイルが実行されたことと思います。

3. 最後に

ここまででmavenを使用して実行可能jarファイルを生成する方法をご紹介しました。
mavenシリーズは、自分でもかなり時間をかけて勉強したので、また記事を投稿すると思います。
少しでも、mavenを使いたい、または使わざるを得ないけど使い方がわからない・・・というような方のお役にたてれば幸いです。

tarosa0001
tarosa0001です。 いろんなところに散らばっている技術的ノウハウを、勉強したついでに集めて記載していきます。 よろしくお願いいたします。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away