Menukar Gradle Build File ke Maven POM

1. Pengenalan

Dalam tutorial ini, kita akan melihat cara menukar fail build Gradle ke fail Maven POM. Kami juga akan meneroka beberapa pilihan penyesuaian yang ada.

2. Fail Bina Gradle

Mari mulakan dengan projek Gradle Java standard, gradle-to-maven ,dengan fail build.gradle berikut :

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

3. Plugin Maven

Gradle dihantar dengan plugin Maven, yang menambahkan sokongan untuk menukar fail Gradle menjadi fail POM Maven. Ia juga dapat menyebarkan artifak ke repositori Maven.

Untuk menggunakan ini, mari tambahkan plugin Maven ke fail build.gradle kami :

apply plugin: 'maven'

Plugin menggunakan kumpulan dan versi yang terdapat dalam fail Gradle dan menambahkannya ke fail POM. Juga, secara automatik mengambil artifactId dari nama direktori.

Plugin secara automatik menambah tugas pemasangan juga. Jadi untuk menukar, mari jalankan yang berikut:

gradle install

Menjalankan perintah di atas membuat direktori build dengan tiga sub-direktori:

  • libs - mengandungi balang dengan nama $ {artifactId} - $ {version} .jar
  • poms - mengandungi fail POM yang ditukar dengan nama pom-default.xml
  • tmp / balang - mengandungi manifes

Fail POM yang dihasilkan akan kelihatan seperti ini:

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

Yang memasang tugas juga memuat naik fail POM yang dihasilkan dan JAR ke tempat simpanan Maven tempatan.

4. Menyesuaikan Maven Plugin

Dalam beberapa kes, mungkin berguna untuk menyesuaikan maklumat projek dalam fail POM yang dihasilkan. Mari kita lihat.

4.1. groupId, artifactId , dan versi

Menukar groupId , artifactId dan versi POM boleh dikendalikan dalam memasang blok:

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

Menjalankan tugas pemasangan sekarang menghasilkan fail POM dengan maklumat yang diberikan di atas:

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

4.2. Direktori dan Nama POM

Kadang-kadang, kita mungkin memerlukan fail POM untuk disalin ke direktori lain dan dengan nama yang berbeza . Oleh itu, mari tambahkan yang berikut ke blok pemasangan :

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

The mavenPomDir Atribut didedahkan oleh plugin, yang akan menunjukkan membina / poms . Kami juga dapat memberikan jalan mutlak dari mana-mana direktori yang ingin kami salin fail POM.

Setelah menjalankan tugas pemasangan , kita dapat melihat pom.xml di dalam build / poms / com.baeldung / gradle-to-maven .

4.3. Kandungan yang dihasilkan secara automatik

Plugin Maven juga menjadikannya mudah untuk mengubah elemen POM yang dihasilkan. Sebagai contoh, untuk menjadikan kebergantungan sebagai pilihan, kita dapat menambahkan penutupan di bawah ke pom.whenConfigured:

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

Ini akan menghasilkan atribut pilihan yang ditambahkan pada pergantungan :

 junit junit test true 

4.4. Maklumat tambahan

Akhirnya, jika kita ingin menambahkan maklumat tambahan, kita boleh memasukkan elemen yang disokong oleh Maven ke pembangun projek pom.project .

Mari tambahkan beberapa maklumat lesen:

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

Kita sekarang dapat melihat maklumat lesen yang ditambahkan ke POM:

2020   My License //www.mycompany.com/licenses/license.txt repo  

5. Kesimpulan

Dalam tutorial ringkas ini, kami belajar bagaimana menukar fail build Gradle ke Maven POM.

Seperti biasa, kod sumber dari artikel ini boleh didapati di GitHub.