ビルドの種類 (例: デバッグ/リリース) に応じて動作をわずかに変更する単純な同期タスクを作成したいのですが、gradle.taskGraph.whenReady で宣言されたブール変数「ダミー」を使用します。
gradle.taskGraph.whenReady {taskGraph ->
dummy = false
if (taskGraph.hasTask(':dummybuild')) {
dummy = true
}
}
問題は、次の方法で構成されたタスクには構成スコープがあることです。つまり、 whenReady の前にあるため、「ダミー」変数にアクセスできません。
task copySkins(type: Sync) {
from skinsFrom
into skinsInto
rename skinsRename
exclude symbianExclude
if (!dummy) exclude dummyExclude
}
現在、この回避策を使用しています
task copySkins {
inputs.dir skinsFrom
outputs.dir skinsInto
doLast {
task skins(type: Sync) {
from skinsFrom
into skinsInto
rename skinsRename
exclude symbianExclude
if (!dummy) exclude dummyExclude
}
skins.execute()
}
}
することは可能ですか
- whenReady を除く他の場所でいくつかのビルド プロパティを検出/セットアップする
- 同期タスクの作業を doLast に移動する
- または、少なくとも同期タスクのショートカットがあります(.execute()はかなり見栄えが悪いです)