2013-10-11 61 views
2

我有一個任務將一堆文件從一個位置複製到另一個位置。它看起來像:在Gradle中指定複製任務的輸出文件

task copyStuff (type: Copy) { 
    from tempDir 
    into buildDir 
} 

tempDirbuildDir只是字符串。我試圖指定任務的輸入和輸出,以避免在不需要時執行它,但是特別是在輸出時遇到了一些問題。輸入很容易:

task copyStuff (type: Copy) { 
    inputs.dir tempDir 
    from tempDir 
    into buildDir 
} 

但是如何在這種情況下指定輸出? buildDir可以有其他的東西,不僅僅是被複制的文件,所以我認爲我需要指定outputs.files專門使用被複制的文件。但是,我不確定最好的方式來做到這一點。

以外的任務,我應該循環tempDir中的文件,並創建一個類似的文件列表,但在buildDir?有更容易的方法嗎?

回答

4

您不需要聲明輸入或輸出,因爲Copy任務已經爲您完成。與Gradle一起提供的其他任務也一樣。

+1

嗯...... output_file'返回目標文件夾,而不是複製到目標文件夾中的文件,如OP所示。這是目前的一個缺點(https://discuss.gradle.org/t/copy-task-outputs-dont-reflect-files-actually-copied/1135)。 –

相關問題