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で指定されたプロパティ値を読み込み、その値のディレクトリを作成します。
<?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