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についてもっと知りたいのなら、私たちのリンクを読むことができます。

前の投稿:SpringによるApache CXFの手引き
次の投稿:Java Weekly、Issue 231