Prevod súboru Gradle Build na Maven POM

1. Úvod

V tomto výučbe sa pozrieme na to, ako previesť zostavovací súbor Gradle na súbor Maven POM. Preskúmame tiež niekoľko dostupných možností prispôsobenia.

2. Vytvorte súbor Gradle

Začnime so štandardným projektom Java Gradle, gradle-to-maven,s nasledujúcimi build.gradle spis:

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

3. Doplnok Maven

Gradle sa dodáva s doplnkom Maven, ktorý pridáva podporu pre prevod súboru Gradle na súbor Maven POM. Môže tiež nasadiť artefakty do úložísk Maven.

Aby sme to mohli využiť, pridajme si do nášho Maven plugin build.gradle spis:

použiť plugin: 'maven'

Doplnok používa skupina a verzia v súbore Gradle a pridá ich do súboru POM. Tiež to automaticky trvá artifactId z názvu adresára.

Doplnok automaticky pridáva Inštalácia aj úlohu. Ak teda chceme vykonať konverziu, spustime nasledovné:

gradle nainštalovať

Spustením vyššie uvedeného príkazu sa vytvorí a stavať adresár s tromi podadresármi:

  • libs - obsahujúci téglik s menom $ {artifactId} - $ {verzia} .jar
  • pomsobsahujúci prevedený súbor POM s názvom pom-default.xml
  • tmp / jar - obsahujúci manifest

Vygenerovaný súbor POM bude vyzerať takto:

  4.0.0 com.baeldung gradle-to-maven 0.0.1-SNAPSHOT org.slf4j slf4j-api kompilácia junit junit test 

The Inštalácia úloha tiež nahrá vygenerovaný súbor POM a JAR do miestneho úložiska Maven.

4. Prispôsobenie doplnku Maven

V niektorých prípadoch môže byť užitočné prispôsobiť informácie o projekte vo vygenerovanom súbore POM. Pozrime sa.

4.1. groupId,artifactId, a verzia

Mení sa groupId, artifactId a verzia POM je možné spracovať v Inštalácia blok:

nainštalovať {repozitáre {mavenInstaller {pom.version = '0.0.1-maven-SNAPSHOT' pom.groupId = 'com.baeldung.sample' pom.artifactId = 'gradle-maven-converter'}}}

Prevádzka Inštalácia úloha teraz vytvorí súbor POM s informáciami uvedenými vyššie:

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

4.2. Adresár a názov POM

Niekedy možno budeme musieť súbor POM skopírovať do iného adresára a s iným názvom. Preto do položky pridajme nasledujúce Inštalácia blok:

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

The mavenPomDir atribút je odhalený doplnkom, ktorý bude ukazovať na stavať / poms. Môžeme tiež určiť absolútnu cestu k ľubovoľnému adresáru, do ktorého chceme súbor POM skopírovať.

Po spustení Inštalácia úlohu, môžeme vidieť pom.xml vo vnútri build / poms / com.baeldung / gradle-to-maven.

4.3. Automaticky generovaný obsah

Doplnok Maven tiež umožňuje priamu zmenu ktoréhokoľvek z vygenerovaných prvkov POM. Napríklad aby bola závislosť voliteľná, môžeme do nej pridať nižšie uvedený záver pom.when Konfigurované:

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

Toto vyprodukuje voliteľné atribút pridaný k závislosť:

 test junit junit pravdivý 

4.4. Ďalšie informácie

Nakoniec, ak chceme pridať ďalšie informácie, môžeme do prvku zahrnúť akýkoľvek prvok podporovaný Maven pom.projekt staviteľ.

Pridajte nejaké licenčné informácie:

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

Teraz vidíme licenčné informácie pridané k POM:

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

5. Záver

V tomto rýchlom výučbe sme sa naučili, ako previesť zostavovací súbor Gradle na Maven POM.

Zdrojový kód z tohto článku nájdete ako vždy na serveri GitHub.