ファイルをあるフォルダから別のフォルダに単純にコピーするGradleタスクがあります。Gradleタスクの実行はコンフィグレーションフェーズですが、実行フェーズではありません
設定フェーズ中に 'from' 'into'メソッドが呼び出されたときは動作しますが、実行フェーズで呼び出されたときは動作しません。
task copyServerConfig(type:Copy) << {
from "${projectDir}" + File.separator + 'server_config'
into localServer
}
:それをそれはそれはすべてのエラーが表示されませんが、ファイルがコピーされていない '< <' で
task copyServerConfig(type:Copy) {
from "${projectDir}" + File.separator + 'server_config'
into localServer
}
のGradle copyServerConfig
:copyServerConfig
BUILD SUCCESSFUL
Total time: 0.686 secs
の作品をこのように行う
gradle copyServerConfig
:copyServerConfig UP-TO-DATE
BUILD SUCCESSFUL
Total time: 0.654 secs
doFirst {}ブロック内に置くと同じことが起こります。
私は理解していないもう一つは以下の通りです:
私は、このタスクを実行した場合:
task task1(type:Exec) << {
commandLine 'echo', ' TEST'
}
を、私はこのエラーを取得する:
Gradleのタスク1
:task1 FAILED
FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':task1'.
execCommand == null!
しかし、これに変更した場合:
task task1(type:Exec) {
commandLine 'echo', ' TEST'
}
のGradle TASK1は
:task1
TEST
BUILD SUCCESSFUL
Total time: 0.655 secs
Iは約構築ライフサイクルに関する文書を読み込み、Iブロックは実行フェーズ中に実行し、それらのブロック外のコマンドがで実行doFirst {}とdoLast {}内のコマンドを理解します構成フェーズ
しかし、私はここで欠けているいくつかの重要な概念があると思います。なぜこうなった ?設定フェーズと実行フェーズで実行されているコマンドの違いは何ですか?