Mengonversi File Build Gradle ke Maven POM

1. Perkenalan

Dalam tutorial ini, kita akan melihat cara mengonversi file build Gradle menjadi file POM Maven. Kami juga akan menjelajahi beberapa opsi penyesuaian yang tersedia.

2. File Build Gradle

Mari kita mulai dengan proyek Java Gradle standar, gradle-to-maven ,dengan file 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 dikirimkan dengan plugin Maven, yang menambahkan dukungan untuk mengonversi file Gradle menjadi file POM Maven. Itu juga dapat menyebarkan artefak ke repositori Maven.

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

apply plugin: 'maven'

Plugin menggunakan grup dan versi yang ada di file Gradle dan menambahkannya ke file POM. Selain itu, secara otomatis mengambil artifactId dari nama direktori.

Plugin secara otomatis menambahkan tugas penginstalan juga. Jadi untuk mengonversi, mari jalankan yang berikut ini:

gradle install

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

  • libs - berisi tabung dengan nama $ {artifactId} - $ {version} .jar
  • poms - berisi file POM yang telah dikonversi dengan nama pom-default.xml
  • tmp / jar - berisi manifes

File POM yang dihasilkan akan terlihat seperti ini:

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

The menginstal tugas juga upload file yang POM yang dihasilkan dan JAR ke repositori Maven lokal.

4. Menyesuaikan Plugin Maven

Dalam beberapa kasus, mungkin berguna untuk menyesuaikan informasi proyek dalam file POM yang dihasilkan. Mari lihat.

4.1. groupId, artifactId, dan versi

Mengubah groupId , artifactId dan versi POM dapat ditangani di blok instalasi :

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

Menjalankan tugas instal sekarang menghasilkan file POM dengan informasi yang diberikan di atas:

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

4.2. Direktori dan Nama Badan POM

Terkadang, kami mungkin memerlukan file POM untuk disalin ke direktori yang berbeda dan dengan nama yang berbeda . Oleh karena itu, mari tambahkan yang berikut ini ke blok instalasi :

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

The mavenPomDir atribut terpapar oleh plugin, yang akan mengarah ke membangun / pom . Kami juga dapat memberikan jalur absolut dari direktori mana pun tempat kami ingin menyalin file POM.

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

4.3. Konten yang Dibuat Otomatis

Plugin Maven juga memudahkan untuk mengubah elemen POM yang dihasilkan. Misalnya, untuk membuat ketergantungan opsional, kita dapat menambahkan closure di bawah ini ke pom.whenConfigured:

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

Ini akan menghasilkan atribut opsional yang ditambahkan ke dependensi :

 junit junit test true 

4.4. informasi tambahan

Terakhir, jika kita ingin menambahkan informasi tambahan, kita bisa memasukkan elemen yang didukung Maven ke pom.project builder.

Mari tambahkan beberapa informasi lisensi:

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

Kami sekarang dapat melihat informasi lisensi ditambahkan ke POM:

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

5. Kesimpulan

Dalam tutorial singkat ini, kita belajar cara mengonversi file build Gradle ke Maven POM.

Seperti biasa, kode sumber dari artikel ini dapat ditemukan di GitHub.