antからgradleのタスクを実行する(ベタにexecで)

  • できるところから gradle に移行したい
  • Java のプロジェクトで ant は使ってるけど諸事情により Eclipse に gradle プラグイン入れたりできない
  • ファイルマネージャとか端末をわざわざ開かずに Eclipse から gradle のタスクをキックしたい

みたいな状況があったので。
gradle 関係ないけどついでに Rubyスクリプトも呼べるようにしてみた。

<project name="myproject" default="test" basedir=".">
    
    <property name="gradle_bin" value="/path/to/gradle-x.x/bin/gradle" />
    
    <macrodef name="gradle">
        <attribute name="target" />
        <sequential>
            <exec executable="${gradle_bin}" dir="${basedir}">
              <arg line="@{target}" />
            </exec>
        </sequential>
    </macrodef>
    
    <macrodef name="ruby">
        <attribute name="name" />
        <sequential>
            <exec executable="ruby" dir="${basedir}">
              <arg line="script/@{name}.rb" />
            </exec>
        </sequential>
    </macrodef>
    
    <!-- ******** ******** ******** ******** -->

    <target name="clean">
        <gradle target="clean" />
    </target>

    <target name="test">
        <gradle target="test" />
    </target>

    <target name="war">
        <gradle target="war" />
    </target>

    <target name="deploy">
        <ruby name="deploy" />
    </target>

    <target name="build_and_deploy">
        <antcall target="war" />
        <antcall target="deploy" />
    </target>

</project>

antビューを開いておいてダブルクリックで実行できるようになった。

2013-10-12 01:35:49



  • ant 1.8.4
  • gradle 1.8



2014-03-24 追記

そして、Android Studio側でビルドなボタンを押した時の挙動は、コマンドラインから ./gradlew assembleDebug をしたときと同じ。もう「IDEからは動くのに、コマンドラインからだと動かない」なんて謎現象に悩まされる必要はありません。

僕がEclipseをやめてAndroid Studioを使っている10の理由 - ナカザンドットネット
そうそう、そういう謎現象が嫌というのもありまして。