2
我目前有一組文件,其中包含需要在複製到目標構建目錄之前解析並轉換爲XML的DSL。Gradle Zip任務:複製時替換整個文件內容
我使用eachFile掛鉤做到這一點,但是當我替換該文件的內容的源文件時,也改變了:
task build(type: Zip) {
with {
archiveName = "${project.name}-${project.version}.${extension}"
destinationDir = buildDir
}
from('workflow/dsl') {
eachFile { fileDetails ->
String xml = new OozieDslParser().parse(fileDetails.getFile())
fileDetails.setName(fileDetails.getName().replaceFirst(~/\.[^\.]+$/, '.xml')
fileDetails.getFile().text = xml //This changes the source file as well.
}
}
from('workflow/resources')
}
什麼是解決這個問題的最好方法是什麼?
不幸的是,「擴展」和「過濾器」選項似乎不起作用,因爲前者只是擴展屬性,後者只給我一條線。
謝謝!