Jawa

Repositori Gradle

Repositori Gradle
Gradle mencari dependensi eksternal di repositori. Repositori Gradle diatur menggunakan grup, nama, dan versi. Gradle kompatibel dengan berbagai format repositori seperti Maven dan Ivy.

Memahami Manajemen Ketergantungan di Gradle

Repositori digunakan di Gradle untuk manajemen ketergantungan. Ada dua komponen untuk dependensi Gradle: dependensi dan publikasi proyek.

Saat Anda membangun proyek di Gradle, Anda mungkin memerlukan pustaka dari pengembang lain. Misalkan Anda memerlukan perpustakaan Apache Commons Lang untuk manipulasi string khusus. Jadi Anda membutuhkannya di classpath Anda agar kode Anda berfungsi. Dan Apache Commons Lang mungkin memerlukan perpustakaan tambahan yang tidak Anda ketahui. Gradle memungkinkan Anda untuk memberi tahu dependensi tertentu yang dibutuhkan proyek Anda dan itu akan pergi ke repositori yang ditentukan seperti Maven atau Ivy dan mencari tahu semua dependensi terkait dan mengunduh file dan mengaturnya untuk Anda secara otomatis.

Gradle juga memiliki kemampuan untuk mempublikasikan artefak Anda. Anda dapat memutuskan apa arti publikasi untuk kasus khusus Anda. Anda dapat mempublikasikannya secara lokal atau mempublikasikannya ke repositori Maven atau Ivy.

Contoh Repositori Gradle

Misalkan, kita ingin menggunakan kelas StringUtils dari perpustakaan Apache Commons Lang. Mari kita siapkan direktur seperti ini:

Halo Dunia
|-- membangun.bertahap
'-- src
|-- utama
'-- jawa
'-- Halo Dunia
'-- Halo Dunia.Jawa

Di dunia halo.Java, Anda dapat memasukkan kode berikut:

impor organisasi.apache.milik bersama.lang3.StringUtils;
kelas publik helloworld
public static void main(String[] args)
String salam = "Halo Dunia!";
Sistem.di luar.println(salam);
Sistem.di luar.println(StringUtils.swapCase(salam));

Dan dalam membangun.gradle Anda dapat meletakkan yang berikut ini:

terapkan plugin: 'java'
versi = '1.0'
repositori
mavenCentral()

dependensi
kompilasi grup: 'org.apache.commons', nama: 'commons-lang3', versi: '3.7'

toples
dari konfigurasi.menyusun.kumpulkan zipTree it

Mari kita bahas apa yang terjadi pada skrip build di atas. Ia memberi tahu Gradle untuk mencari di repositori Maven untuk versi commons-lang3 3.7. Itu juga memberi tahu Gradle untuk mengemas dependensi ke dalam file jar. Jika Anda menghapus dari konfigurasi.menyusun.kumpulkan baris zipTree it, maka Anda harus memasukkan dependensi eksternal ke dalam classpath saat Anda menjalankan program.

Sekarang dari folder root, Anda dapat menjalankan build dengan perintah

$ toples gradle
Anda akan melihat hasil seperti ini:
$ toples gradle
Unduh https://repo.ahli.apache.org/maven2/org/Apache/commons/commons-lang3/3.7/
commons-lang3-3.7.pom
Unduh https://repo.ahli.apache.org/maven2/org/Apache/commons/commons-parent/42/
commons-parent-42.pom
Unduh https://repo.ahli.apache.org/maven2/org/Apache/commons/commons-lang3/3.7/
commons-lang3-3.7.botol
MEMBANGUN SUKSES dalam 6 detik
2 tugas yang dapat ditindaklanjuti: 1 dieksekusi, 1 terbaru

Anda dapat menjalankan build seperti ini:

$ java -cp build/libs/helloworld-1.0.jar  helloworld
Halo Dunia!
Halo Dunia!

Jika Anda tidak memasukkan dependensi ke dalam build Anda, maka kelas StringUtils tidak akan disertakan dalam helloworld-1 Anda.0.file toples. Dan Anda akan mendapatkan kesalahan seperti ini:

$ java -cp build/libs/helloworld-1.0.toples helloworld
Halo Dunia!
Pengecualian di utas "utama" Java.lang.NoClassDefFoundError: org/Apache/commons/lang3/
StringUtils di helloworld.utama (halo dunia.jawa:11)
Disebabkan oleh: jawa.lang.ClassNotFoundException: org.apache.milik bersama.lang3.StringUtils
di jawa.bersih.URLClassLoader.findClass(URLClassLoader.jawa:381)
di jawa.lang.Pemuat Kelas.loadClass(ClassLoader.jawa:424)
saat matahari.lain-lain.Peluncur$AppClassLoader.loadClass(Peluncur.jawa:331)
di jawa.lang.Pemuat Kelas.loadClass(ClassLoader.jawa:357)
… 1 lagi

Gradle memudahkan Anda untuk mengemas dependensi ke dalam paket Anda.

Kesimpulan

Menggunakan repositori Gradle dan fungsionalitas dependensi dapat menyederhanakan proses manajemen dependensi Anda. Anda tidak perlu melacak semuanya secara manual.

Pelajaran lanjutan:

Manajemen Ketergantungan Gradle untuk Proyek Java

Tombol tengah mouse tidak berfungsi di Windows 10
Itu tombol tengah mouse membantu Anda menelusuri halaman web dan layar yang panjang dengan banyak data. Jika itu berhenti, Anda akhirnya akan mengguna...
Cara Mengganti Tombol Kiri & Kanan Mouse di PC Windows 10
Sudah menjadi hal biasa bahwa semua perangkat mouse komputer dirancang secara ergonomis untuk pengguna yang tidak kidal. Tetapi ada perangkat mouse ya...
Tiru klik Mouse dengan mengarahkan mouse menggunakan Clickless Mouse di Windows 10
Menggunakan mouse atau keyboard dalam posisi yang salah dari penggunaan yang berlebihan dapat menyebabkan banyak masalah kesehatan, termasuk keteganga...