0

匿名のGradleタスクを実行するにはどうすればよいですか?

特定のタスクにフックを追加し、別のタスクを で実行したいvariant.mergedFlavor.packageName

android.applicationVariants.all { variant ->
    tasks.getByName("prepare${variant.name}Dependencies").finalizedBy({
        doFirst {
           println variant.mergedFlavor.packageName
        }
    })
}

私が達成したいのは、prepare${variant.name}Dependenciesタスクがタスクタスクによってファイナライズされること download${variant.name}RawDataです。

それを行う正しい方法は何ですか?

4

1 に答える 1

4

匿名タスクのようなものはありませんが、代わりに通常の (名前付き) タスクを使用できます。

android.applicationVariants.all { variant ->
    def downloadTask = task("download${variant.name}RawData") {
        doFirst {
            println variant.mergedFlavor.packageName
        }
    }
    tasks["prepare${variant.name}Dependencies"].finalizedBy(downloadTask)
}

そうは言っても、コールバックが開始prepareされた時点でタスクが利用可能になるかどうかはわかりません。そうでない場合は、行を延期する必要があるかもしれません。applicationVariants.all { ... }finalizedByproject.afterEvaluate { ... }

于 2013-10-29T15:54:33.123 に答える