倭マン's BLOG

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

Assembly -- 既にビルドされているプロジェクトから assembly を作成する

今回は、既にビルドされているプロジェクトから assembly を作成する方法を見ていきます。 やり方は簡単。

  • POM ファイルに設定を書く
  • コマンド「mvn assembly:assembly」を実行して assembly を作成する

だけです。 もちろん、POM ファイルの設定は最初に1度するだけで構いません。

POM ファイルの設定


とりあえず、POM ファイルのサンプルを。

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

  <build>
    <plugins>
      <plugin>
        <!--groupId>org.apache.maven.plugins</groupId-->
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

追加する設定は、「project/build/plugins/plugin」要素下に書きます。 XML 形式では少々長めの設定に見えますが、設定している内容は実質的に「プラグインの artifactId」と「assembly の型を指定する descriptorRef」だけです*1

「assembly の型を指定する descriptorRef」に指定できる値は以下の4つです

descriptorRef 説明
bin "mvn package" で生成される Jar ファイルと README, LICENSE, NOTICE ファイルを assembly に含めます。
jar-with-dependencies 自分のプロジェクトのクラス・ファイルに加え、それが依存しているライブラリのクラス・ファイルもパッケージングされていない状態で assembly に含めます。
src pom.xml, README, LICENSE, NOTICE ファイルと、「src 」 フォルダ下のファイル全てを assembly に含めます。
project 「target」フォルダ下のファイル以外を assembly に含めます。

assembly の作成


assembly の作成は簡単です。 コマンド・プロンプトでプロジェクトのルートフォルダ(POM ファイルがある場所)へ行き、

mvn assembly:assembly

を実行するだけです。

成果物の assembly は「target」フォルダ下に作成されます。 上記のサンプル POM ファイルでは、「sample-1.0-jar-with-dependencies.jar」という Jar ファイルが作成されます。

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

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

*1:プラグインの設定をする際は、通常プラグインの gourpId も設定する必要があります。 ただし、org.apache.maven.plugins グループで作成されているプラグインは、この設定項目を省略することが出来ます。