May 30, 2007

[Maven] Maven2 の assembly プラグインにチャレンジ

maven-assembly-plugin とは

いわゆる「出荷用アーカイブの作成」に近いイメージのプラグイン。 特に出荷用というわけではないのだけれど、プロジェクト内の好きなファイルをアーカイビングすることが出来る。 アーカイブの形式も zip、tar.gz、tar.bz2、jar など様々な形式に対応している。 今回は、開発環境(要するにソース一式)を他の開発者にそのままアーカイビングして渡すことをイメージして遊んでみた。

Maven Assembly Plugin
http://maven.apache.org/plugins/maven-assembly-plugin/
assembly:assembly
http://maven.apache.org/plugins/maven-assembly-plugin/assembly-mojo.html
Guide to creating assemblies
http://maven.apache.org/guides/mini/guide-assemblies.html
ソースコード
https://svn.apache.org/repos/asf/maven/plugins/tags/maven-assembly-plugin-2.2-beta-1/

pom.xml の設定

<project>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptor>assemple.xml</descriptor>
          <outputDirectory>..</outputDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

maven-assembly-plugin の設定ファイル

pom.xml で指定した名称で maven-assembly-plugin の設定ファイルを作成する。 下の例は開発環境を渡すことを想定しているため、ソースコード類とビルドツールをアーカイビングしている。

<?xml version="1.0" encoding="UTF-8"?>

<assembly>
  <id>src</id>
  <formats>
    <format>tar.gz</format>
  </formats>
  <fileSets>
    <fileSet>
      <includes>
        <include>*.*</include>
        <include>.settings/**/*.*</include>
        <include>module1/pom.xml</include>
        <include>module1/src/**/*.*</include>
        <include>module2/pom.xml</include>
        <include>module2/src/**/*.*</include>
        <include>tool/maven-2.0.6/**/*.*</include>
      </includes>
    </fileSet>
  </fileSets>
</assembly>

maven-assembly-plugin の実行

下のコマンドで実行できる。今回の例では、プロジェクトホームと同じディレクトリに ${finalName}-src.tar.gz というアーカイブが作成される。 アーカイブファイルに設定ファイルの id が付加される。

> mvn assembly:assembly

Posted in Maven | このエントリーをはてなブックマークに追加 | この記事をクリップ! livedoor クリップ |