Örnek
Elimizde şöyle bir xml vardı
<dependencyManagement><dependencies><dependency>...</dependency><dependencies><dependencyManagement><dependencyManagement><dependencies><dependency>...</dependency><dependencies><dependencyManagement>
Bu ikisini birleştirmek için şöyle yaptım. Aslında kod buradan geldi
import java.util.regex.Matchertask fixPom { doLast { File file = new File("$buildDir/publications/maven_1/pom-default.xml") if (!file.exists()) { return; } println("Fixing pom for " + file.getPath()) def text = file.text def pattern = "(?s)(<dependencyManagement>.+?<dependencies>)(.+?)(</dependencies>.+?</dependencyManagement>)" Matcher matcher = text =~ pattern if (matcher.find()) { //Remove the first <dependencyManagement> tag text = text.replaceFirst(pattern, "") //Get all all <dependency> tags def firstDeps = matcher.group(2) //Get (<dependencyManagement>.+?<dependencies>)(.+?) part //add new dependencies and close the tag text = text.replaceFirst(pattern, '$1$2' + firstDeps + '$3') } file.write(text) } }
Bu yeni task'ı şöyle kullandım
generatePomPropertiesFile.dependsOn("fixPom")
Çünkü asemble için sıra şöyleydi
ompileJava processResources classes createPropertiesFileForJar generatePomFileForMaven_1Publication fixPom //Burada araya girdim generatePomPropertiesFile writeManifestProperties jar createPropertiesFileForSourcesJar sourcesJar assemble
Hiç yorum yok:
Yorum Gönder