Ich möchte einen Wert in unserer log4j2.xml mit Gradle während des Builds ersetzen. Ich fand einen Weg, das zu tun:Wie in Log4j2.xml mit Gradle zu ersetzen?
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')
}
Doch dies ändert sich auch die Quelldatei dauerhaft und ich möchte nicht, dass zu tun. Ich möchte die log4j2.xml ändern, die nur in der Build-Zip enthalten sein wird. Ich weiß, dass ich so etwas wie diese verwenden:
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
}
}
Aber ich weiß nicht, was die Art der log4j2 Datei. Wenn es einen anderen Weg gibt, werde ich dankbar sein!
Wir verwenden Mule Gradle Plugin.
Vielen Dank für Ihre Antwort. Leider ist log4j2.xml nicht in der Sammlung in der MuleZip-Task enthalten. Hier ist der Code für die Aufgabe https://github.com/mulesoft-labs/mule-gradle-plugin/blob/master/src/main/groovy/com/mulesoft/build/MuleZip.groovy –
Wie ich schon sagte. Ändern Sie die Aufgabe, die die 'log4j2.xml'-Datei packt. Ich müsste Ihre 'build.gradle' und den Pfad zur' log4j2.xml'-Datei sehen, um eine konkrete zu ändernde Aufgabe vorzuschlagen. – Vampire
Unsere log4j2.xml befindet sich standardmäßig unter "src \ main \ resources \ log4j2.xml". Hier ist unser Build.gradle: https://www.dropbox.com/s/iuv4j9htpseyed4/build.gradle?dl=0 –