hnakamur’s blog

ものすごい勢いで忘れる私のために未整理でもいいからとりあえずメモ

2011-03-30

Antからmavenを実行するサンプル

参考:

事前準備:上記のサイトからmaven-ant-tasks-2.1.1.jarをダウンロードして${ANT_HOME}/libにコピー。

<?xml version="1.0" encoding="UTF-8"?>
<project name="necs" basedir="." default="help"
    xmlns:artifact="antlib:org.apache.maven.artifact.ant">

  <property file="build.properties"/>
  <property name="maven.local.repo.dir" value="${user.dir}/localRepository"/>

  <target name="help">
    <echo>
      Usage: ant build|help
    </echo>
  </target>

  <artifact:localRepository id="localRepo" path="${maven.local.repo.dir}"/>

  <macrodef name="mvn_clean_install_no_test">
    <attribute name="dir" />
    <sequential>
      <artifact:mvn pom="@{dir}/pom.xml" fork="yes" failonerror="true">
        <localRepository refid="localRepo"/>
        <arg value="-Dmaven.test.skip=true"/>
        <arg value="clean"/>
        <arg value="install"/>
      </artifact:mvn>
    </sequential>
  </macrodef>


  <target name="build">
    <mvn_clean_install_no_test dir="SampleApp" />
  </target>
</project>

artifact:mvnタスクはJavaタスクを継承しているのでfork属性が使えます。-Dname=valueを有効にするためにはforkする必要があるのでfork="true"を指定しています。

ブログ アーカイブ