7 Nisan 2022 Perşembe

Custom Task Örnekleri

Ö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.Matcher
task 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

Gradle Daemon Nedir?

Giriş Açıklaması  şöyle . Gradle Daemon arka planda çalışır. Çünkü Gradle'ı ayağa kaldırmak ve ilklendirmek çok uzun sürüyor.  Gradle ru...