マイナー・マイナー

隠れた名作の発掘が生きがい。

【Maven】AntRun Pluginを利用してAntを実行する


スポンサードリンク

MavenからAntを利用できるプラグインが"Apache Maven AntRun Plugin"です。このプラグインを利用して、Mavenから指定したディレクトリをAntで作成する方法をメモしました。


pom.xmlを下記のように書きます。buildタグの中でAntRunの設定をしています。

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.jp.test</groupId>
  <artifactId>MyProject</artifactId>
  <version>0.0.1-SNAPSHOT</version>
 
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <dependencies>
          <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant</artifactId>
            <version>1.7.0</version>
          </dependency>
        </dependencies>
        <configuration>
          <tasks>
            <property name="dirname" value="work"/>
            <ant antfile="build.xml" target="${ant.target}" inheritRefs="true" />
          </tasks>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </plugin>
    </plugins>
  </build>
</project>


tasksの中のantタグで、Antの設定ファイルを指定します。tasksの中に直接Antのタグも記述できますが、例えばtargetのdepends属性が利用できなかったり等、限定的な使い方しかできないようです。


pom.xmlから何かしらの値をbuild.xmlに引き渡す場合は、propertyで何かしらの値を設定すれば良さそうです。build.xmlでは、pom.xmlのdirnameで指定されたプロパティ値を読み込み、その値のディレクトリを作成します。


build.xml

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

<project basedir="." default="build" name="dir-operation">
  <target name="build" depends="create"/>
  <target name="delete">
    <delete dir="${dirname}"/>
  </target>
  <target name="create" depends="delete">
    <mkdir dir="${dirname}"/>
  </target>
</project>


antrunの実行コマンドは下記の通りです。引数ant.targetに実行するターゲットの名前を設定します。

mvn antrun:run -Dant.target=create


関連記事:
minor.hatenablog.com