0

アップデート

実行時にタスクを把握できました。しかし、私は別のタスクを完了することができません。私が使用したコードは次のとおりです。

gradle.taskGraph.whenReady {taskGraph ->
if (taskGraph.hasTask(spoonFreeDebugAndroidTest)) {
    for(Task task : project.gradle.taskGraph.allTasks.iterator())
    {
        if(task.name.startsWith("spoonFreeDebugAndroidTest")) {
            println "spoonFreeDebugAndroidTest task found"
            ciIntegrationTests.mustRunAfter task.name
            task.finalizedBy "ciIntegrationTests"
        }
    }
}

}

ただし、「spoonFreeDebugAndroidTest」が失敗すると、タスク「ciIntegrationTests」は実行されません。(ただし、println 行は印刷されます。)

元の質問

アプリのフレーバーに応じて、実行時 (タスク グラフの生成時) にビルドされるスプーンタスクがあります。たとえば、タスク「spoonFreeAndroidDebugTest」は実行時に生成され、build.gradle ではアクセスできません。

このタスクに依存関係を追加して、他のタスクが失敗した場合でもこのタスクが実行されるようにします。私はこれらのアプローチを試しました:

spoon.finalizedBy "ciIntegrationTests"

これは私にこのエラーを与えます

com.stanfy.spoon.gradle.SpoonExtension_Decorated@147456b6 で、引数 [ciIntegrationTests] のメソッド finalizedBy() が見つかりませんでした。

spoonFreeAndroidDebugTest.finalizedBy "ciIntegrationTests"

エラーが発生します

プロパティ「spoonDeltaAndroidDebugTest」が見つかりませんでした

"spoonDeltaAndroidDebugTest".finalizedBy "ciIntegrationTests"

その結果、

メソッドのシグネチャはありません: java.lang.String.finalizedBy() は引数の型に適用できます: (java.lang.String) 値: [ciIntegrationTests]

実行時に生成されるbuild.gradleのタスクにアクセスする方法はありますか。

4

1 に答える 1