使用Google protobuf-gradle插件,它可以根據多個原始文件輸入生成潛在的多個文件。在運行任務時,只能查看所有已輸出的文件,而不能事先確定輸出的內容。從Gradle任務中跟蹤(並刪除)輸出文件
當清理項目時,挑戰就來了。看起來Gradle會跟蹤輸出文件,可從AbstractTask.getOutputs().getPreviousFiles()
訪問。這是Gradle的內部,所以我懷疑你可以依靠這個。如果你想刪除所有的輸出文件,最好的方法是什麼?
一種可能性是限制輸出文件夾到構建目錄,以便如果它被刪除,所有生成的文件將會消失。
另一種方法是在輸出目錄中創建一個清單,該清單將跟蹤所有創建的文件,然後知道要刪除的內容。
這裏有什麼建議?
如何處理輸出被刪除時的情況?對於IncrementalTaskInputs,您可能可以計算差異。否則,您需要始終刪除整個輸出目錄,然後重新填充整個目錄。有沒有可能做得更好? – brunobowden
@brunobowden如果我能很好地理解它,那麼默認情況下它會被照顧。如果您註釋任務輸出,gradle會在失蹤時始終準備它們。 – Opal
你是正確的@opal。我沒有解釋得很好。我正在考慮ATinput變化導致AToutput變化的時間。由於protobuf插件的限制,它不知道何時編輯ATinput可能導致AToutput消失。在這種情況下,它必須清除所有輸出,然後重新創建所有內容。 – brunobowden