0
我想在構建過程中用Gradle替換log4j2.xml中的值。我找到了一種方法:如何使用Gradle替換log4j2.xml?
task reaplaceInLogFile {
String apiSuffix = System.properties['apiSuffix'] ?: ''
println "In my task"
String contents = file('src/main/resources/log4j2.xml').getText('UTF-8')
println "File found"
contents = contents.replaceAll("svc0022_operations", "svc0022_operations${apiSuffix}")
new File('src/main/resources/log4j2.xml').write(contents, 'UTF-8')
}
但是,這也改變了源文件的永久性,我不想這樣做。我想更改將僅包含在構建zip中的log4j2.xml。我知道我可以使用這樣的事情:
tasks.withType(com.mulesoft.build.MuleZip) { task ->
String apiSuffix = System.properties['apiSuffix'] ?: ''
task.eachFile {
println name
if (name == 'mule-app.properties') {
println "Expanding properties for API Version suffix: ${apiSuffix}"
filter { String line ->
line.startsWith("${serviceId}.api.suffix") ? "${serviceId}.api.suffix=${apiSuffix}" : line
}
}
但我不知道什麼是log4j2文件的類型。如果還有另一種方法可以做到這一點,我會很感激!
我們使用的是Mule gradle插件。
謝謝你的回答。不幸的是,log4j2.xml不在MuleZip任務的集合中。這是任務代碼https://github.com/mulesoft-labs/mule-gradle-plugin/blob/master/src/main/groovy/com/mulesoft/build/MuleZip.groovy –
正如我所說的。修改包裝'log4j2.xml'文件的任務。我需要看到你的'build.gradle'和'log4j2.xml'文件的路徑來建議一個具體的任務來修改。 – Vampire
我們的log4j2.xml標準地位於「src \ main \ resources \ log4j2.xml」下面這是我們的build.gradle:https://www.dropbox.com/s/iuv4j9htpseyed4/build.gradle?dl=0 –