読者です 読者をやめる 読者になる 読者になる

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 Effective Implementation Guide

Gradle Effective Implementation Guide


Gradle in Action

Gradle in Action


Gradle Beyond the Basics

Gradle Beyond the Basics



Building and Testing with Gradle

Building and Testing with Gradle


プログラミングGROOVY

プログラミングGROOVY

広告を非表示にする