グラードは、コンフィグレーションフェーズで<<
と宣言されていないすべてのタスクを実行します。あなたが実行フェーズまでのタスクの実行を遅延する場合、あなただけのhelloExecution
タスクを実行する際に続いて、我々は両方の実行を参照してくださいあなたのbuild.gradle
task helloConfiguration { task ->
println "Hello configuration phase task! $task.name"
}
/* Notice the `<<` this denotes to gradle to not execute
* the closure during the configuration phase. Instead
* delay closure's execution till the execution phase.
*/
task helloExecution << { task ->
println "Hello execution phase task! $task.name"
}
helloExecution.dependsOn helloConfiguration
で<<
を追加することができ、順序が保証さ。次に、ビルドを構成するタスクのみを実行したい場合は、単一のタスクを実行したい場合にのみ、個別に行うことができます。
$ gradle helloExecution
Hello configuration phase task! helloConfiguration
Hello execution phase task! helloExecution
:helloConfiguration UP-TO-DATE
:helloExecution UP-TO-DATE
BUILD SUCCESSFUL
Total time: 0.64 secs
$ gradle helloConfiguration
Hello configuration phase task! helloConfiguration
:helloConfiguration UP-TO-DATE
BUILD SUCCESSFUL
Total time: 0.784 secs
設定段階で実行されるタスクは、いつも私があなたのシーイングを期待する行動である、何のタスクが供給されていない場合でも実行されます。上記の例を考えてみましょう。構成タスクは実行されたが実行されていないことに注意してください。あなたは構成フェーズで実行5つのタスクを持っている場合
$ gradle
Hello configuration phase task! helloConfiguration
:help
Welcome to Gradle 2.10.
To run a build, run gradle <task> ...
To see a list of available tasks, run gradle tasks
To see a list of command-line options, run gradle --help
To see more detail about a task, run gradle help --task <task>
BUILD SUCCESSFUL
Total time: 0.651 secs
だから、あなたはそれらのすべてを実行見ることが、関係なく、タスクのコマンドライン引数は、実行フェーズの目標のために起動しようとしました。
私はデフォルトのタスクに依存しないタスクを実行します。特定のタスクを実行したいだけですが、それは可能ではありませんか? –
削除したいタスクが分かっている場合は、コマンドライン 'gradle myTask -x someTaskThatShouldNotRun'で明示的に指定することができます。 – JBirdVegas
残念なことに、残念ながらこれらの答えの中には問題があります。 – JoshuaTree