Konvertering av Gradle Build-fil til Maven POM
1. Introduksjon
I denne opplæringen tar vi en titt på hvordan du konverterer en Gradle build-fil til en Maven POM-fil. Vi vil også utforske noen få tilgjengelige tilpasningsalternativer.
2. Gradle Build-fil
La oss starte med et standard Gradle Java-prosjekt, grad-til-maven,med følgende build.gradle fil:
repositories {mavenCentral ()} group = 'com.baeldung' version = '0.0.1-SNAPSHOT' gjelder plugin: 'java' avhengigheter {compile ('org.slf4j: slf4j-api') testCompile ('junit: junit') }
3. Maven-plugin
Gradle leveres med et Maven-plugin, som legger til støtte for å konvertere en Gradle-fil til en Maven POM-fil. Det kan også distribuere gjenstander til Maven-arkiver.
For å bruke dette, la oss legge til Maven-pluginet til vårt build.gradle fil:
bruk plugin: 'maven'
Plugin bruker gruppe og versjon til stede i Gradle-filen og legger dem til POM-filen. Det tar også automatisk artefaktId fra katalognavnet.
Plugin legger automatisk til installere oppgave også. Så for å konvertere, la oss kjøre følgende:
gradere installere
Å kjøre kommandoen ovenfor skaper en bygge katalog med tre underkataloger:
- libs - inneholder krukken med navnet $ {artifactId} - $ {versjon} .jar
- poms – inneholder den konverterte POM-filen med navnet pom-default.xml
- tmp / jar - inneholder manifestet
Den genererte POM-filen vil se slik ut:
4.0.0 com.baeldung gradle-to-maven 0.0.1-SNAPSHOT org.slf4j slf4j-api kompilere junit junit test
De installere oppgave laster også opp den genererte POM-filen og JAR til det lokale Maven-arkivet.
4. Tilpasse Maven-plugin
I noen tilfeller kan det være nyttig å tilpasse prosjektinformasjonen i den genererte POM-filen. La oss ta en titt.
4.1. groupId,artefaktId, og versjon
Endring av groupId, artefaktId og versjon av POM kan håndteres i installere blokkere:
installer {repositories {mavenInstaller {pom.version = '0.0.1-maven-SNAPSHOT' pom.groupId = 'com.baeldung.sample' pom.artifactId = 'gradle-maven-converter'}}}
Kjører installere oppgave produserer nå POM-filen med informasjonen gitt ovenfor:
com.baeldung.sample gradle-maven-converter 0.0.1-maven-SNAPSHOT
4.2. Katalog og navn på POM
Noen ganger, Vi trenger kanskje POM-filen for å bli kopiert til en annen katalog og med et annet navn. La oss derfor legge til følgende i installere blokkere:
pom.writeTo ("$ {mavenPomDir} / $ {project.group} / $ {project.name} /pom.xml")
De mavenPomDir attributt blir eksponert av pluginet, som vil peke på bygge / poms. Vi kan også gi den absolutte banen til hvilken som helst katalog vi ønsker å kopiere POM-filen til.
Etter å ha kjørt installere oppgave, kan vi se pom.xml innsiden build / poms / com.baeldung / gradle-to-maven.
4.3. Auto-generert innhold
Maven-pluginet gjør det også enkelt å endre noen av de genererte POM-elementene. For eksempel, for å gjøre en avhengighet valgfri, kan vi legge til nedleggelsen nedenfor pom.whenConfigured:
pom.whenConfigured {pom -> pom.dependencies.find {dep -> dep.groupId == 'junit' && dep.artifactId == 'junit'} .optional = true}
Dette vil produsere valgfri attributt lagt til avhengighet:
junit junit test sant
4.4. Tilleggsinformasjon
Til slutt, hvis vi vil legge til ytterligere informasjon, vi kan inkludere ethvert Maven-støttet element i pom.project bygger.
La oss legge til litt lisensinformasjon:
pom.project {inceptionYear '2020' lisenser {lisens {name 'My License' url '//www.mycompany.com/licenses/license.txt' distribution 'repo'}}}
Vi kan nå se lisensinformasjon lagt til POM:
2020 Min lisens //www.mycompany.com/licenses/license.txt repo
5. Konklusjon
I denne raske opplæringen lærte vi hvordan vi konverterer en Gradle-byggfil til Maven POM.
Som alltid kan kildekoden fra denne artikkelen finnes på GitHub.