2017-05-04 60 views
0

我想創建一個任務,將其作爲其他任務的輸入@OutputFile。我知道需要將輸出文件作爲輸入,而不是創建該輸出文件的任務,以便使用輸出的任務可以輸出創建者。我如何找到哪個任務創建輸出?如何找到創建一些特定輸出的Gradle任務?

更具體:

  • $unknownTask創建someKnownOutput
  • newTask使用someKnownOutput
  • newTaskdependsOn $unknownTask

如何的$unknownTask值可以找到?

+0

通過「輸出」你的意思是控制檯輸出或文件?如果任務將該文件標記爲TaskOutput,則可以通過使用-i或-d(我想象Gradle會記錄這些事情)來獲得洞察。如果沒有,那麼Gradle無法知道內部的任務是什麼,所以你應該自己做。 –

+0

我已經編輯了這個問題,以便更清楚(即使我認爲「更具體」下的描述非常清晰)。 –

+0

常規方法是瞭解Gradle或使用的插件如何工作以獲取必要的見解。文件的名稱是否不變或是否遵循某種模式? –

回答

0

下應該打印出來,其輸出是thisIsTheOne任務:

task findTaskCreatingSpecificOutput() { 
    doLast { 
    subprojects { subproject -> 
     subproject.tasks.findAll { task -> 
     task.outputs.getFiles().getFiles().findAll { output -> 
      output == 'thisIsTheOne' 
     } 
     }.flatten().each { println it } 
    } 
    } 
} 
+1

請使用您問題上的編輯鏈接添加其他信息。後回答按鈕應該只用於問題的完整答案。 - [來自評論](/ review/low-quality-posts/16035083) – Carpetsmoker

+0

這是我的問題的答案。 –

+1

好吧,夠公平的。沒有任何文本,有點難以分辨,特別是因爲有人問「你的build.gradle文件是怎麼樣的?」在評論中;-) – Carpetsmoker

相關問題