すべてのgradleタスクのリストをファイルに書き込もうとしています。私はもちろん、これにはtasks
コマンドを使用できますが、他の gradleコマンドが呼び出されるたびにファイルにキャッシュします。例えば、私が./gradlew build
を実行するたびに、利用可能なタスクをファイルに書きたいと思っています。 ビルドスクリプトからすべてのGradleタスクのリストを取得する
この
は十分に単純なように見えた、と私はそれを試してみるには、以下のタスクを書いた:task cacheTasks() {
doLast {
allprojects { p ->
p.tasks*.each { t ->
println(p.name + ":" + t.name)
}
}
}
}
問題は、私が唯一の利用可能なすべてのタスクのサブセットを取得していること。 ./gradlew tasks --all
コマンドを実行すると、さらに多くのコマンドが出力されます。組み込みのタスク(のようなbuild
、clean
またはhelp
)のどれもが、私はループそれ以上tasks*
リストに登録されていないようですが、奇妙なことに、私はは、それらを直接参照することができます。
tasks.build { t ->
println("DEBUG:" + t.name)
}
それはそう思えます単純ですが、私は無駄な解決策を探しています。私はgrad3のソースコードを見てみて、tasks
タスクの仕組みを見てみましたが、なぜこれがうまくいかないのかという手掛かりは見つかりませんでした。
'tasks.build'が新しいタスクを作成するという良い点があります。私はそれが起こるのを忘れた。しかし、これはどのように私はすべてのタスクのリストを取得することができるの質問に答えることはありません... – meonlol