2016-03-30 57 views
2

我有以下任務將文件從我的android項目資源文件複製到單元測試中ClassLoader實例可訪問的其他路徑。Gradle Copy任務不復制文件

task copyResDirectoryToClasses(type: Copy){ 
    println 'COPYINGCOPYINGCOPYING!!!!!!!!!!!!!!!!!!!!' 
    println "$projectDir/src/test/java/com/textmeinc/topmeup/resources/" 
    println "$buildDir/intermediates/classes/test/staging/debug/" 

    from "$projectDir/src/test/java/com/textmeinc/topmeup/resources/" 
    into "$buildDir/intermediates/classes/test/staging/debug/" 
} 

assembleDebug.dependsOn(copyResDirectoryToClasses) 

我看到在我的gradle控制檯中運行的任務。

Parallel execution with configuration on demand is an incubating feature. 
COPYINGCOPYINGCOPYING!!!!!!!!!!!!!!!!!!!! 
/Users/tylerpfaff/Documents/Development/topmeup-android/app/src/test/java/com/textmeinc/topmeup/resources/ 
/Users/tylerpfaff/Documents/Development/topmeup-android/app/build/intermediates/classes/test/staging/debug/ 

但是,沒有文件被傳輸。如果我手動移動他們在終端中,我的測試運行良好與我的mock.json文件。爲什麼不是複製工作?

這是我用來手動複製文件的命令。

cp /Users/tylerpfaff/Documents/Development/topmeup-android/app/src/test/java/com/textmeinc/topmeup/resources/mock.json /Users/tylerpfaff/Documents/Development/topmeup-android/app/build/intermediates/classes/test/staging/debug/ 
+0

您在終端中複製到'classes/test/staging/debug /',但在gradle任務中複製到'classes/staging/debug /'。 –

+0

看到我的編輯,仍然沒有工作:(@勞倫斯Choy –

+0

你可以嘗試在任務的'from'部分指定文件名(mock.json)嗎? –

回答

3

我覺得有一個在插件中的錯誤。我自己碰到了這個。將任務作爲「dependsOn」運行失敗。但是,如果我在Android Studio中打開Gradle選項卡並從那裏手動運行任務,則會複製文件。命令行gradlew :subproject:copytask也一樣。我將嘗試在一個獨立的項目中複製它,如果可以的話,我會提交一個錯誤報告(並將鏈接放在此處)。同時,手動運行該gradle任務是我唯一的解決方案。

+0

謝謝爲您的研究!這是令人難以置信的煩人。 –

0

在是相對於projectDir

this documentation page使用路徑上的例子嘗試從進入路徑替換您:

from 'app/src/test/java/com/textmeinc/topmeup/resources' 
into 'build/intermediates/classes/test/staging/debug' 
+0

沒有工作不幸 –

相關問題