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 $ gradleAnda 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 helloworldHai 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 helloworldHai 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