2016-05-20 27 views
3

ファイルをあるフォルダから別のフォルダに単純にコピーする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 {}内のコマンドを理解します構成フェーズ

しかし、私はここで欠けているいくつかの重要な概念があると思います。なぜこうなった ?設定フェーズと実行フェーズで実行されているコマンドの違いは何ですか?

答えて

1

第一の変形は、コピータスク

task copyServerConfig(type:Copy) { 
    from "${projectDir}" + File.separator + 'server_config' 
    into localServer 
} 

を宣言するための正しい方法ですここであなたが言う「これは名前copyServerConfig持つタイプCopyの課題である、これはfromのparamであり、これはintoのparamです」。角括弧内のコードは、タスクを設定するために使用されます。


<<オペレータは、それの後に実行されるタスクへdoAfterクロージャを追加します。

task copyServerConfig(type:Copy) << { 
    from "${projectDir}" + File.separator + 'server_config' 
    into localServer 
} 

この宣言は、「(設定されていない)空のCopyタスクを作成し、それが行われた後、次の2行を実行することを意味する。ここでは、タスクを設定していない、それは何もしませんし、常にUP-TO-DATEです。doAfterで二行彼らはCopyタスクに関連していないので、閉鎖のでfromintoキーワードは効果がありません、だけでなく、何もしない。


同様の事がExecタスクで発生

task task1(type:Exec) << { 
    commandLine 'echo', ' TEST' 
} 

空のExecタスクが設定されていないために失敗しました。

関連する問題