Konvertering af Gradle Build-fil til Maven POM

1. Introduktion

I denne vejledning ser vi på, hvordan man konverterer en Gradle build-fil til en Maven POM-fil. Vi undersøger også et par tilgængelige tilpasningsmuligheder.

2. Gradle Build-fil

Lad os starte med et standard Gradle Java-projekt, gradle-til-maven,med følgende build.gradle fil:

repositories {mavenCentral ()} group = 'com.baeldung' version = '0.0.1-SNAPSHOT' anvend plugin: 'java' afhængigheder {compile ('org.slf4j: slf4j-api') testCompile ('junit: junit') }

3. Maven-plugin

Gradle leveres med et Maven-plugin, som tilføjer support til at konvertere en Gradle-fil til en Maven POM-fil. Det kan også distribuere artefakter til Maven-arkiver.

For at bruge dette, lad os tilføje Maven-pluginet til vores build.gradle fil:

anvend plugin: 'maven'

Pluginet bruger gruppe og version findes i Gradle-filen og tilføjer dem til POM-filen. Det tager også automatisk artefaktId fra katalognavnet.

Pluginet tilføjer automatisk installere opgave også. Så for at konvertere, lad os køre følgende:

gradle installation

Kørsel af ovenstående kommando opretter en bygge katalog med tre underkataloger:

  • libs - indeholdende krukken med navnet $ {artifactId} - $ {version} .jar
  • pomsindeholdende den konverterede POM-fil med navnet pom-default.xml
  • tmp / krukke - indeholdende manifestet

Den genererede POM-fil vil se sådan ud:

  4.0.0 com.baeldung gradle-to-maven 0.0.1-SNAPSHOT org.slf4j slf4j-api kompilere junit junit test 

Det installere opgave uploader også den genererede POM-fil og JAR til det lokale Maven-arkiv.

4. Tilpasning af Maven Plugin

I nogle tilfælde kan det være nyttigt at tilpasse projektoplysningerne i den genererede POM-fil. Lad os se.

4.1. groupId,artefaktId, og version

Ændring af groupId, artefaktId og version af POM kan håndteres i installere blok:

installer {repositories {mavenInstaller {pom.version = '0.0.1-maven-SNAPSHOT' pom.groupId = 'com.baeldung.sample' pom.artifactId = 'gradle-maven-converter'}}}

Kører installere opgave producerer nu POM-filen med ovenstående oplysninger:

com.baeldung.sample gradle-maven-converter 0.0.1-maven-SNAPSHOT

4.2. Directory og navn på POM

Sommetider, vi har muligvis brug for, at POM-filen kopieres til en anden mappe og med et andet navn. Lad os derfor tilføje følgende til installere blok:

pom.writeTo ("$ {mavenPomDir} / $ {project.group} / $ {project.name} /pom.xml")

Det mavenPomDir attribut eksponeres af pluginet, som vil pege på build / poms. Vi kan også angive den absolutte sti for ethvert bibliotek, vi ønsker at kopiere POM-filen til.

Efter at have kørt installere opgave, kan vi se pom.xml inde build / poms / com.baeldung / gradle-to-maven.

4.3. Auto-genereret indhold

Maven-pluginet gør det også ligetil at ændre ethvert af de genererede POM-elementer. For eksempel, for at gøre en afhængighed valgfri, kan vi tilføje nedenstående lukning til pom.whenConfigured:

pom.whenConfigured {pom -> pom.dependencies.find {dep -> dep.groupId == 'junit' && dep.artifactId == 'junit'}. optional = true}

Dette vil producere valgfri attribut tilføjet til afhængighed:

 junit junit test sandt 

4.4. Yderligere Information

Endelig, hvis vi vil tilføje yderligere oplysninger, vi kan inkludere ethvert Maven-understøttet element i pom.project Bygger.

Lad os tilføje nogle licensoplysninger:

pom.project {inceptionYear '2020' licenser {licens {name 'Min licens' url '//www.mycompany.com/licenses/license.txt' distribution 'repo'}}}

Vi kan nu se licensoplysninger tilføjet til POM:

2020 Min licens //www.mycompany.com/licenses/license.txt repo 

5. Konklusion

I denne hurtige vejledning lærte vi, hvordan man konverterer en Gradle build-fil til Maven POM.

Som altid kan kildekoden fra denne artikel findes på GitHub.