Gradleでタスクから別のタスクを呼び出す

やりたいこと

Gradleで依存関係を設定して2つのタスクを1つにまとめるで依存関係を使ったが
個人的には、タスクから別のタスクを呼び出す方がしっくり来る感じがする。
なので試してみる。



試行錯誤1

タスクの呼び出し箇所
task deploy {
    downloadZip
    unzip
}
結果
gradle deploy
:deploy UP-TO-DATE

BUILD SUCCESSFUL

Total time: 5.351 secs

downloadZip、unzipタスクは呼ばれていない

試行錯誤2

task deploy {
    downloadZip()
    unzip()
}
結果
FAILURE: Build failed with an exception.

* Where:
Build file 'C:\workspace\Gradle_SandBox\AnotherTask\build.gradle' line: 28

* What went wrong:
A problem occurred evaluating root project 'AnotherTask'.
> Could not find method downloadZip() for arguments [] on root project 'AnotherTask'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 5.063 secs

ググった結果

サンプルにもリファレンスにもそれっぽいのがない。
ググったら、こんなのがあった。
How to call a task from another task

The truth is that we don't officially support calling tasks programmatically. Instead you are supposed to use task dependencies whenever possible. That said, I think task.execute() should work, but as you mentioned it won't execute dependent tasks.

tasks.タスク名.execute()でいけるみたいだが、これあかんやつや。




実行結果

.
│  build.gradle
│
├─.gradle
│  └─1.8
│      └─taskArtifacts
│              cache.properties
│              cache.properties.lock
│              fileHashes.bin
│              fileSnapshots.bin
│              outputFileStates.bin
│              taskArtifacts.bin
│
└─build
    ├─quickstart
    │      webapp-quickstart.war
    │
    └─tmp
        ├─downloadZip
        │      quickstart.zip
        │
        └─expandedArchives
            └─quickstart.zip_5udnrbl91abhenrt86vsk3262d
                └─quickstart
                        webapp-quickstart.war

環境

------------------------------------------------------------
Gradle 1.8
------------------------------------------------------------

Build time:   2013-09-24 07:32:33 UTC
Build number: none
Revision:     7970ec3503b4f5767ee1c1c69f8b4186c4763e3d

Groovy:       1.8.6
Ant:          Apache Ant(TM) version 1.9.2 compiled on July 8 2013
Ivy:          2.2.0
JVM:          1.7.0_45 (Oracle Corporation 24.45-b08)
OS:           Windows 7 6.1 amd64

添削歓迎

ここ間違ってるよ
こうした方がよくないか?
こういうことなんじゃないかな。
この環境だとこうなるよ
などなど
方法は、コメント、はてブTwitter @orange_clover宛 で、お願いします。





Gradle in Action

Gradle in Action

Amazon