Gradle はコマンドラインから呼ぶには特に困らないけれども、Eclipse のようなIDEから起動する場合(例えば、Buildship のEclipse Plug-ins for Gradle など)には次のような問題がある。
- 普段は必要としないようなタスクまで一覧に出てきてしまい大変わかりずらい。
- プロジェクトのルートに gradlew と gradlew.bat の2ファイルができる
そこで、むしろ Java IDE では一番サポートがしっかりしている Ant をタスクランナー代わりに使えばいいのではないかという考えに至った。というわけで作ったのが次のスクリプト。
build.ant
<project name="testapp">
<target name="jar">
<gradlew command="jar" />
</target>
<macrodef name="gradlew">
<attribute name="command" />
<sequential>
<java classname="org.gradle.wrapper.GradleWrapperMain" fork="true"
classpath="gradle/wrapper/gradle-wrapper.jar">
<sysproperty key="org.gradle.appname" value="${basedir}" />
<arg value="@{command}" />
</java>
</sequential>
</macrodef>
</project>
本末転倒な気もしなくはないけど、Ivy の更新も止まっているし、余計な起動ファイルも不要になるのでこれはこれで良いのかも……