Maven Ant Tasksの利用方法
Maven Ant Tasksを利用するとmvnコマンドを叩くことなく、antのbuild.xml内でそれらの作業を行うことができる。 以下では、Eclipse上のbuild.xmlでアーティファクトをビルドして、社内リポジトリにデプロイする方法に絞って説明する。
Maven Ant Tasksのインストール
単純にMaven Ant Tasksのウェブサイトからjarファイルをダウンロードする (2010/7時点ではmaven-ant-tasks-2.1.1.jar)。
これを置く場所としては様々である。
- c:\documents and settings\ユーザ名\.antフォルダを作成してその中に置く。
- eclipseのインストールディレクトリのpluginsの中にあるantのフォルダのlibディレクトリに置く。
- 好きなところに置く。この場合、eclipseのant実行時のクラスパス指定を行う必要がある。
※eclipse環境の場合は、これらを行っても自動的には追加されない模様。ウインドウ>設定>Ant>ランタイムのクラスパスに明示的に指定する必要がある。
pomファイルの用意
mvnコマンドと異なり、Maven Ant Tasksには実行時にgroupIdやartifactIdを指定する仕組みが無い。 これらはすべて「指定されたpomファイル」から取得される。 これをあらかじめ作っておくべきであるが、しかしバージョン番号等はその都度変更したいので、antで自動生成させた方がよいと思われる。 例えば、以下のようなpom.xmlを作成しておくか、自動生成させる。
<?xml version="1.0" encoding="UTF-8"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <groupId>lipermimod</groupId> <artifactId>lipermimod</artifactId> <version>0.9.0</version> <description>lipermimod POM file</description> </project>
build.xmlの変更
既にプロジェクトにはbuild.xmlが存在すると仮定する。これをprojectタグ部分を以下のように変更する。
<project xmlns:.... <--- もしあれば他の名前空間の指定 xmlns:artifact="antlib:org.apache.maven.artifact.ant" xmlns:.... <-- もしあれば他の名前空間の指定 default="all">
ローカルリポジトリにインストールする場合
ローカルリポジトリにインストールする場合には以下のようなtargetを記述する。 mypom.xmlは先に作成したPOMファイル、test.jarはアーティファクトjarファイルである。
<target name="install-local"> <artifact:pom id="mypom" file="mypom.xml" /> <artifact:install file="test.jar"> <pom refid="mypom"/> </artifact:install> </target>
社内リポジトリ等にデプロイする場合
社内リポジトリ等にデプロイする場合は以下のように記述する。
<target name="deploy-inhouse"> <artifact:pom id="mypom" file="mypom.xml" /> <artifact:deploy file="test.jar"> <remoteRepository url="http://192.168.0.1/maven2/repos"/> <pom refid="mypom"/> </artifact:deploy> </target>
なお、デプロイ先の指定には、http, ftp, scp等の様々なプロトコルが使用可能である。 「file://localhost/test」とすると、Windowsの場合には「c:\test」というフォルダが作成されてそこにインストールされる。
なお、ローカルリポジトリへのインストールではチェックサムは作成されないが、デプロイでは自動的にmd5, sha1チェックサムが生成される。