Pretvaranje datoteke gradnje Gradle u Maven POM

1. Uvod

U ovom uputstvu ćemo pogledati kako pretvoriti datoteku gradnje Gradle u datoteku Maven POM. Također ćemo istražiti nekoliko dostupnih mogućnosti prilagodbe.

2. Gradle datoteka gradnje

Počnimo sa standardnim Gradle Java projektom, gradle-to-maven,sa sljedećim graditi.gradle datoteka:

spremišta {mavenCentral ()} group = 'com.baeldung' version = '0.0.1-SNAPSHOT' primijeni dodatak: 'java' ovisnosti {compile ('org.slf4j: slf4j-api') testCompile ('junit: junit') }

3. Dodatak Maven

Gradle se isporučuje s dodatkom Maven, koji dodaje podršku za pretvaranje datoteke Gradle u datoteku Maven POM. Također može rasporediti artefakte u spremišta Maven.

Da bismo to iskoristili, dodajmo dodatak Maven u naš graditi.gradle datoteka:

primijeni dodatak: 'maven'

Dodatak koristi skupina i verzija prisutni u datoteci Gradle i dodaju ih u datoteku POM. Također, automatski uzima artefaktId iz naziva direktorija.

Dodatak automatski dodaje instalirati zadatak također. Dakle, za pretvorbu pokrenimo sljedeće:

gradle instalirati

Pokretanjem gornje naredbe stvara se izgraditi direktorij s tri poddirektorijuma:

  • usne - koja sadrži staklenku s imenom $ {artifactId} - $ {verzija} .jar
  • pomskoja sadrži pretvorenu POM datoteku s imenom pom-default.xml
  • tmp / jar - koji sadrži manifest

Generirana POM datoteka izgledat će ovako:

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

The instalirati zadatak također prenosi generiranu POM datoteku i JAR u lokalno spremište Maven.

4. Prilagođavanje dodatka Maven

U nekim slučajevima može biti korisno prilagoditi podatke o projektu u generiranoj POM datoteci. Pogledajmo.

4.1. id grupe,artefaktId, i verzija

Promjena groupId, artefaktId i verzija POM-a može se rukovati u instalirati blok:

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

Pokretanje instalirati zadatak sada proizvodi POM datoteku s gore navedenim informacijama:

com.baeldung.sample gradle-maven-pretvarač 0.0.1-maven-SNAPSHOT

4.2. Imenik i naziv POM-a

Ponekad, možda ćemo trebati POM datoteku kopirati u drugi direktorij i s drugim imenom. Stoga, dodajmo sljedeće u instalirati blok:

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

The mavenPomDir atribut izlaže dodatak koji će ukazivati ​​na graditi / poms. Također možemo dati apsolutni put bilo kojeg direktorija u koji želimo kopirati POM datoteku.

Nakon pokretanja instalirati zadatak, možemo vidjeti pom.xml iznutra build / poms / com.baeldung / gradle-to-maven.

4.3. Automatski generirani sadržaj

Dodatak Maven također olakšava promjenu bilo kojeg generiranog POM elementa. Na primjer, da ovisnost postane neobavezna, možemo dodati donje zatvaranje pom.whenConfigured:

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

To će proizvesti neobavezna atribut dodan u ovisnost:

 test junit junit istina 

4.4. dodatne informacije

Napokon, ako želimo dodati dodatne informacije, možemo uključiti bilo koji podržani Maven element u pom.projekt graditelj.

Dodajmo neke podatke o licenci:

pom.project {početakGodine '2020' licence {licenca {naziv 'Moja licenca' url '//www.mycompany.com/licenses/license.txt' distribucija 'repo'}}}

Sad možemo vidjeti podatke o licenci dodane u POM:

2020 Moja licenca //www.mycompany.com/licenses/license.txt repo 

5. Zaključak

U ovom smo brzom vodiču naučili kako pretvoriti datoteku gradnje Gradle u Maven POM.

Kao i uvijek, izvorni kod iz ovog članka možete pronaći na GitHubu.