1. ホーム
  2. gradle

[解決済み] build.gradleでカスタムメソッドを定義して呼び出すには?

2023-04-16 18:59:18

質問

私のプロジェクトの一部として、私はディレクトリからファイルを読み取る必要があり、ビルドスクリプトでこれらすべてのいくつかの操作を行う。各ファイルについて、操作は同じです(いくつかのSQLクエリを読み取り、それを実行する)。私はそれが反復的なタスクであり、メソッドの内部に記述する方が良いと思います。私はGradleに新しいので、私はそれがどのようにあるべきかを知りません。よろしくお願いします。

どのように解決するのでしょうか?

以下のような方法があります。

ext.myMethod = { param1, param2 ->
    // Method body here
}

これはプロジェクトのスコープで作成されることに注意してください。つまり、プロジェクトでグローバルに利用可能で、ビルドスクリプトのどこかで myMethod(p1, p2) と同じです。 project.myMethod(p1, p2)

このメソッドは、タスク内など、異なるスコープでも定義することができます。

task myTask {
    ext.myMethod = { param1, param2 ->
        // Method body here
    }

    doLast {
        myMethod(p1, p2) // This will resolve 'myMethod' defined in task
    }
}