A Gradle Build fájl konvertálása Maven POM formátumra

1. Bemutatkozás

Ebben az oktatóanyagban megvizsgáljuk, hogyan lehet átalakítani a Gradle build fájlt Maven POM fájlokká. Megvizsgálunk néhány rendelkezésre álló testreszabási lehetőséget is.

2. Gradle Build File

Kezdjük egy standard Gradle Java projekttel, gradle-to-maven,a következőkkel épít.gradle fájl:

adattárak {mavenCentral ()} group = 'com.baeldung' version = '0.0.1-SNAPSHOT' plugin: 'java' dependencies {compile ('org.slf4j: slf4j-api') testCompile ('junit: junit') }

3. Maven plugin

A Gradle Maven pluginnel szállítja, amely támogatja a Gradle fájl Maven POM fájlokká konvertálását. Artefaktumokat is telepíthet a Maven tárolókba.

Ennek használatához tegyük fel a Maven plugint a mi oldalunkba épít.gradle fájl:

plugin alkalmazása: 'maven'

A plugin a csoport és a változat a Gradle fájlban, és hozzáadja őket a POM fájlhoz. Ezenkívül automatikusan a artefactId a könyvtár nevéből.

A plugin automatikusan hozzáadja a telepítés feladat is. Tehát az átalakításhoz futtassuk a következőket:

fokozat telepítése

A fenti parancs futtatásával a épít könyvtár három alkönyvtárral:

  • libs - a korsót a névvel $ {artifactId} - $ {version} .jar
  • pomsamely tartalmazza az átalakított POM fájlt a névvel pom-default.xml
  • tmp / tégely - amely a manifesztet tartalmazza

A létrehozott POM fájl így fog kinézni:

  4.0.0 com.baeldung gradle-to-maven 0.0.1-SNAPSHOT org.slf4j slf4j-api összeállítja a junit junit tesztet 

A telepítés feladat a létrehozott POM fájlt és a JAR fájlt is feltölti a helyi Maven tárolóba.

4. A Maven beépülő modul testreszabása

Bizonyos esetekben hasznos lehet a projektinformációk testreszabása a létrehozott POM fájlban. Lássuk.

4.1. groupId,artifactId, és változat

A groupId, artefactId és a változat A POM kezelése a telepítés Blokk:

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

A telepítés feladat most előállítja a POM fájlt a fenti információkkal:

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

4.2. A POM könyvtár és neve

Néha, szükségünk lehet a POM fájl másolására egy másik könyvtárba és más névvel. Ezért tegyük hozzá a következőket a telepítés Blokk:

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

A mavenPomDir attribútumot a plugin teszi ki, amely rámutat build / poms. Megadhatjuk minden olyan könyvtár abszolút elérési útját is, ahová át akarjuk másolni a POM fájlt.

Miután a telepítés feladat, láthatjuk a pom.xml belül build / poms / com.baeldung / gradle-to-maven.

4.3. Automatikusan létrehozott tartalom

A Maven plugin azt is megkönnyíti, hogy bármelyik generált POM elemet megváltoztassa. Például, hogy a függőség opcionális legyen, hozzáadhatjuk az alábbi lezárást pom.when konfigurálva:

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

Ez előállítja a választható attribútum hozzáadva a függőség:

 junit junit teszt igaz 

4.4. további információ

Végül, ha további információkat akarunk hozzáadni, bármilyen Maven által támogatott elemet felvehetünk a pom.project építész.

Adjunk hozzá néhány licencinformációt:

pom.project {inceptionYear '2020' licencek {licenc {name 'My Licence' url '//www.mycompany.com/licenses/license.txt' distribution 'repo'}}}

Most láthatjuk a licencinformációkat a POM-hoz hozzáadva:

2020 Saját licenc //www.mycompany.com/licenses/license.txt repo 

5. Következtetés

Ebben a gyors oktatóanyagban megtanultuk, hogyan kell átalakítani a Gradle build fájlt Maven POM-ra.

Mint mindig, a cikk forráskódja megtalálható a GitHubon.