Jawa

Repositori Gradle

Repositori Gradle
Gradle mencari kebergantungan luaran di repositori. Repositori Gradle diatur menggunakan kumpulan, nama, dan versi. Gradle serasi dengan format repositori yang berbeza seperti Maven dan Ivy.

Memahami Ketergantungan Pengurusan dalam Gradle

Repositori digunakan di Gradle untuk pengurusan kebergantungan. Terdapat dua komponen untuk kebergantungan Gradle: kebergantungan dan penerbitan projek.

Semasa anda membina projek di Gradle, anda mungkin memerlukan perpustakaan dari pembangun lain. Katakan anda memerlukan perpustakaan Apache Commons Lang untuk manipulasi rentetan khas. Oleh itu, anda memerlukannya di jalan kelas anda agar kod anda berfungsi. Dan Apache Commons Lang mungkin memerlukan perpustakaan tambahan yang tidak anda ketahui. Gradle membolehkan anda memberitahu pergantungan tertentu yang diperlukan oleh projek anda dan ia akan pergi ke repositori yang ditentukan seperti Maven atau Ivy dan mengetahui semua pergantungan yang berkaitan dan memuat turun fail dan menyiapkannya untuk anda secara automatik.

Gradle juga mempunyai kemampuan untuk menerbitkan artifak anda. Anda boleh memutuskan apa maksud penerbitan untuk kes anda. Anda boleh menerbitkannya secara tempatan atau menerbitkannya ke repositori Maven atau Ivy.

Contoh Gradle Repository

Katakanlah, kami ingin menggunakan kelas StringUtils dari perpustakaan Apache Commons Lang. Mari buat pengarah seperti ini:

Hai dunia
| - membina.leret
'- src
| - utama
'- java
'-- Hai dunia
'-- Hai dunia.jawa

Di dunia helloworld.java, anda boleh meletakkan kod berikut:

org import.apache.commons.lang3.StringUtils;
kelas awam helloworld
utama kekosongan statik awam (String [] args)
Salam bertali = "Hello World!";
Sistem.keluar.println (salam);
Sistem.keluar.println (StringUtils.swapCase (salam));

Dan dalam binaan.fail gradle anda boleh meletakkan perkara berikut:

gunakan pemalam: 'java'
versi = '1.0 '
repositori
mavenCentral ()

kebergantungan
menyusun kumpulan: 'org.apache.commons ', name:' commons-lang3 ', versi:' 3.7 '

balang
dari konfigurasi.menyusun.kumpulkan zipTree it

Mari kita bincangkan apa yang berlaku dalam skrip binaan di atas. Ini memberitahu Gradle untuk mencari di repositori Maven untuk versi 3-commons-lang3.7. Ia juga memberitahu Gradle untuk memasukkan kebergantungan ke dalam fail jar. Sekiranya anda mengeluarkan konfigurasi.menyusun.kumpulkan baris zipTree it, maka anda harus memasukkan kebergantungan luaran ke dalam classpath semasa anda menjalankan program.

Sekarang dari folder root, anda boleh menjalankan build dengan perintah

balang $ gradle
Anda akan melihat hasil seperti ini:
balang $ gradle
Muat turun https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.pom
Muat turun https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-parent / 42 /
commons-ibu bapa-42.pom
Muat turun https: // repo.maven.apache.org / maven2 / org / apache / commons / commons-lang3 / 3.7 /
commons-lang3-3.7.balang
MEMBINA KEJAYAAN dalam 6s
2 tugas yang boleh dilaksanakan: 1 dilaksanakan, 1 terkini

Anda boleh menjalankan binaan seperti ini:

$ java -cp build / libs / helloworld-1.0.balang helloworld
Hai dunia!
Hai dunia!

Sekiranya anda tidak memasukkan kebergantungan ke dalam binaan anda, maka kelas StringUtils tidak akan termasuk dalam helloworld-1 anda.0.fail balang. Dan anda akan mendapat ralat seperti ini:

$ java -cp build / libs / helloworld-1.0.balang helloworld
Hai dunia!
Pengecualian dalam java "utama" utas.lang.NoClassDefFoundError: org / apache / commons / lang3 /
StringUtils di helloworld.utama (helloworld.java: 11)
Disebabkan oleh: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils
di java.bersih.Pemuat URLClass.cariClass (URLClassLoader.java: 381)
di java.lang.Pemuat Kelas.loadClass (ClassLoader.java: 424)
pada waktu matahari.misc.Pelancar $ AppClassLoader.loadClass (Pelancar.java: 331)
di java.lang.Pemuat Kelas.loadClass (ClassLoader.java: 357)
… 1 lagi

Gradle memudahkan anda memasukkan kebergantungan ke dalam pakej anda.

Kesimpulannya

Menggunakan fungsi Gradle repositori dan dependensi dapat mempermudah proses pengurusan kebergantungan anda. Anda tidak perlu menjejak semua perkara secara manual.

Sambung belajar:

Pengurusan Ketergantungan Gradle untuk Projek Java

Permainan Perintah Terbaik untuk Linux
Baris perintah bukan hanya sekutu terbesar anda ketika menggunakan Linux-ia juga dapat menjadi sumber hiburan kerana anda dapat menggunakannya untuk m...
Aplikasi Pemetaan Gamepad Terbaik untuk Linux
Sekiranya anda suka bermain permainan di Linux dengan gamepad dan bukannya sistem input papan kekunci dan tetikus biasa, ada beberapa aplikasi berguna...
Alat Berguna untuk Pemain Linux
Sekiranya anda suka bermain permainan di Linux, kemungkinan anda telah menggunakan aplikasi dan utiliti seperti Wine, Lutris dan OBS Studio untuk meni...