MavenでAntタスクを実行する
1前書き
MavenとAntはどちらもJava用のよく知られたビルド自動化ツールです。
ほとんどの場合、これらのうちの1つのみを使用しますが、2つを一緒に使用することが理にかなっている場合があります。
-
一般的なユースケースは、Antを使用するレガシープロジェクトで作業しているときです。既存のAntタスクを維持しながら、徐々にMavenを導入したい**
このチュートリアルでは、Maven AntRunプラグインを使用してこれを行う方法について説明します。
2 Maven
AntRun
プラグイン
Maven
AntRun
Plugin
を使うと、Maven内でAntタスクを実行できます。
2.1. プラグインを追加する
このプラグインを使用するには、Mavenプロジェクトのビルドプラグインに追加する必要があります。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
...
</executions>
</plugin>
最新のプラグインバージョンはhttps://search.maven.org/classic/#search%7C1%7Cg%3A%22org.apache.maven.plugins%22%20AND%20a%3A%22maven-にあります。 antrun-plugin%22[Maven Central](長期間アップデートされていないが)。
2.2. プラグインの実行
他のMavenプラグインと同様に、AntRunプラグインを利用するには、実行を定義する必要があります。
以下の例では、プロジェクトのターゲットディレクトリから最終的なJARファイルを圧縮するMavenの
__package
__phaseに関連付けられた1つの実行を定義しています。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ant-run-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<id>zip-artifacts</id>
<phase>package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<zip destfile="${project.basedir}/package.zip"
basedir="${project.build.directory}"
includes="** .jar"/>
</target>
</configuration>
</execution>
</executions>
</plugin>
プラグインを実行するには、次のコマンドを実行します。
mvn package
プラグインはMavenの
package
フェーズ中に実行するよう宣言したので、Mavenの
package
ゴールを実行すると上記のプラグイン設定が実行されます。
3
build.xml
ファイルの使用例
プラグイン設定でAntターゲットを定義できるようにする以外に、既存のAnt
__build.xml
__fileを使用することもできます。
3.1.
build.xml
以下は、プロジェクトのベースディレクトリからFTPサーバーにzipファイルをアップロードするように定義されたターゲットを持つプロジェクトのAnt
build.xml
ファイルの例です。
<project name="MyProject" default="dist" basedir=".">
<description>Project Description</description>
...
<target name="ftpArtifact">
<ftp
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}">
<fileset dir="${project.basedir}>
<include name="** ** /** .zip"/>
</fileset>
</ftp>
</target>
</project>
3.2. プラグイン設定
上記の
build.xml
ファイルを使用するには、プラグイン宣言で実行を定義します。
<execution>
<id>deploy-artifact</id>
<phase>install</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<ant antfile="${basedir}/build.xml">
<target name="ftpArtifact"/>
</ant>
</target>
</configuration>
</execution>
ftp
タスクは
ant.jar
に含まれていないため、プラグインの設定にAntのオプションの依存関係を追加する必要があります。
<plugin>
<executions>
...
</executions>
<dependencies>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant-commons-net</artifactId>
<version>1.8.1</version>
</dependency>
</dependencies>
</plugin>
プラグインを実行するには、次のコマンドを実行します。
mvn install
4結論
この短い記事では、Mavenの
AntRun
プラグインを使用してAntタスクを実行する方法について説明しました。目標が1つしかない非常に単純なプラグインですが、このプラグインは、特定のビルド手順にAntを使用することを好むプロジェクトやチームに効果的であることがわかります。
そして、もしあなたがAntとMavenについてもっと知りたいのなら、私たちのリンクを読むことができます。