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
- poms – indeholdende 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.