libro
www.tuyano.com
初心者のためのGradle入門

DefaultTaskクラスの利用 (1/5)

作成:2017-10-21 09:53
更新:2017-10-21 09:53

■DefaultTask継承クラスの作成

Gradleには、標準でさまざまなタスクが用意されていますが、これらは「DefaultTask」というクラスを継承したクラスとして用意されています。このDefaultTask継承クラスは、自分でタスクを作ってカスタマイズすることができるのです。

まずは、「DefaultTask継承クラス」がどんなものか、実際に作ってみましょう。このクラスは、以下のような形で定義されます。
class クラス extends DefaultTask {
    ……フィールド……

    void メソッド ( 引数 ) {
        ……処理……
    }

    @TaskAction
    void メソッド () {
        ……処理……
    }
}

クラスは、DefaultTaskというクラスを継承して作成します。このクラス内に、タスクとして実行する処理をメソッドとして用意します。このメソッドには、@TaskActionアノテーションを付けておきます。これにより、タスクとして実行されたとき、このメソッドが呼び出されるようになります。

タスクで使用する各種の値などはフィールドとして用意しておきます。これは、そのまま利用してもいいですが、外部から利用する場合はprivateフィールドにしておき、アクセスのためのメソッドを用意したほうがスマートでしょう。

以下に簡単なクラスの例を挙げておきましょう。Calcクラスでは、calcというタスクアクションを用意しています。ここで、numopの値に応じて合計の計算や数字のカウントなどを行なっています。

処理そのものは特に難しいところはないでしょう。問題は、これをどうやって利用するのか?ですね。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

class Calc extends DefaultTask {
    private int num
    private String op

    void num(p1){
        num = p1
    }

    void op(p1){
        op = p1
    }

    @TaskAction 
    void calc() {
        switch(op) {
        case 'total':
            int total = 0
            for(def i in 1..num) {
                total += i
            }
            println("total: ${total}")
        break

        case 'count':
            for(def i in 1..num) {
                println("NO, ${i}")
            }
        break

        default:
            println('not found operator...')
        }
    }
}
※関連コンテンツ

「初心者のためのGradle入門」に戻る