2016-09-16 82 views
0

在Gradle中,我可以指定fromintoduplicatesStrategy。但是,duplicatesStrategy只是一個有限選項的枚舉,如override,ignorefailGradle:在複製時指定重複文件的合併策略

不僅僅是重寫,我希望能夠調用一個「內容合併函數」,它將兩個文件(現有文件和新文件)作爲輸入參數並輸出結果文件。

from("fromdir") { 
    into 'targetdir' 
    duplicatesStrategy = { newFile,existingFile -> 
      return mergeFiles(newFile,existingFiles) 
     } 
} 

這有可能以任何方式嗎?

上下文:該任務應該將doc book xml文件從多個項目複製到一個。一個項目可以覆蓋另一個項目的部分文檔,因此必須有一些「邏輯」才能正確合併結果文檔。

回答

0

我會用

duplicatesStrategy 'exclude' 

然後在一個單獨的任務迭代解決這個問題,檢查差異和處理它們的合併存在。最好在使用第三方合併工具的自己的任務實現中。我的搜索沒有發現現有的合併任務。