Kebergantungan Antara Projek
Urus kebergantungan antara subprojek dan pastikan susunan binaan serta penyelesaian artifak yang betul.
Kebergantungan Antara Projek ialah pelajaran Groovy & Gradle: Automasi JVM dan Kejuruteraan Binaan percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Groovy & Gradle: Automasi JVM dan Kejuruteraan Binaan, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Groovy & Gradle: Automasi JVM dan Kejuruteraan Binaan merangkumi sejumlah 4 pelajaran.
Pengenalan kepada Kebergantungan Projek
Dalam binaan Gradle berbilang projek, projek kecil yang berbeza sering perlu bekerjasama. Satu projek kecil mungkin menghasilkan pustaka yang digunakan oleh projek kecil yang lain.
Di sinilah kebergantungan antara projek digunakan! Kebergantungan ini mentakrifkan cara projek kecil saling bergantung, serta memastikan susunan binaan dan perkongsian artifak yang betul.
- Kebergantungan antara projek: Cara satu projek kecil menggunakan kod atau output daripada projek kecil yang lain.
- Penting untuk aplikasi bermodul.
Mengisytiharkan Kebergantungan Asas
Mengisytiharkan bahawa satu projek kecil bergantung pada projek kecil yang lain adalah mudah dalam Gradle. Anda menggunakan fungsi project() dalam blok dependencies anda.
Contohnya, jika projek kecil app anda memerlukan kod daripada projek kecil lib, tambahkan perkara berikut pada app/build.gradle:
// app/build.gradle
dependencies {
implementation project(':lib')
}Bahagian :lib merujuk kepada laluan projek kecil lib berbanding akar.
Menyediakan Contoh Kita
Mari kita bayangkan persediaan berbilang projek yang mudah. Kita akan mempunyai projek akar, projek kecil app dan projek kecil lib.
settings.gradle anda akan kelihatan seperti ini:
// settings.gradle
rootProject.name = 'my-multi-project'
include 'app', 'lib'Ini memberitahu Gradle tentang dua projek kecil kita, iaitu app dan lib.
`implementation` berbanding `api`
Apabila mengisytiharkan kebergantungan antara projek, anda biasanya menggunakan konfigurasi seperti implementation atau api.
implementation: Pilihan yang paling biasa. Kebergantungan digunakan secara dalaman oleh projek kecil dan tidak didedahkan kepada pengguna projek kecil tersebut.api: Mendedahkan kebergantungan kepada pengguna. Jikaappbergantung padalibmelaluiapi, danotherAppbergantung padaapp, makaotherAppjuga akan melihat APIlib.
Untuk kegunaan dalaman antara projek kecil, implementation biasanya lebih digemari kerana enkapsulasi yang lebih baik dan binaan yang lebih pantas.
Projek Kecil Pustaka (`lib`)
Mula-mula, mari cipta kelas mudah dalam projek kecil lib kita yang akan digunakan oleh projek kecil app. Kelas ini akan menyediakan utiliti asas.
Dalam lib/src/main/groovy/com/coddykit/LibUtils.groovy:
package com.coddykit
class LibUtils {
static String getGreeting() {
return "Hello from LibUtils!"
}
}Projek Kecil App Menggunakan Kod `lib`
Sekarang, mari jadikan projek kecil app kita menggunakan kelas LibUtils daripada projek kecil lib. Ingat, kita telah mengisytiharkan implementation project(':lib') dalam app/build.gradle.
Cuba jalankan contoh ini:
package com.coddykit
import com.coddykit.LibUtils
class AppMain {
static void main(String[] args) {
String message = LibUtils.getGreeting()
System.out.println(message)
}
}Susunan Binaan Automatik
Salah satu kelebihan terbesar mengisytiharkan kebergantungan antara projek ialah Gradle menentukan susunan binaan yang betul secara automatik.
- Jika
appbergantung padalib, Gradle memastikanlibdikompil dan artifaknya tersedia sebelumappmemulakan kompilasinya. - Ini menjimatkan usaha anda untuk mengurus urutan binaan secara manual, terutamanya dalam persediaan berbilang projek yang kompleks.
Apabila anda menjalankan gradle build dari akar, Gradle akan membina lib terlebih dahulu, kemudian app.
Memahami Kesan Transitif
Bagaimana jika projek kecil lib anda sendiri bergantung pada projek kecil lain, katakan common?
// lib/build.gradle
dependencies {
implementation project(':common')
}
// app/build.gradle
dependencies {
implementation project(':lib')
}Jika app bergantung pada lib, dan lib bergantung pada common, Gradle akan memastikan common turut dibina dan artifaknya tersedia secara transitif pada classpath app untuk kompilasi, tetapi tidak semestinya tersedia untuk APInya jika implementation digunakan untuk lib.
Mengekalkan Kebergantungan yang Bersih
Untuk memastikan binaan berbilang projek anda mudah diurus dan cekap, ikuti amalan terbaik berikut:
- Kebergantungan Minimum: Isytiharkan hanya kebergantungan pada projek kecil yang benar-benar anda perlukan.
- Gunakan
implementation: Utamakanimplementationberbandingapiuntuk kebergantungan projek kecil dalaman bagi meningkatkan enkapsulasi dan mengurangkan binaan semula. - Sempadan yang Jelas: Reka projek kecil anda dengan tanggungjawab yang jelas untuk mengelakkan kebergantungan bulat.
- Elakkan Laluan Panjang: Pastikan laluan projek kecil ringkas (contohnya,
:module:submoduleadalah sesuai, tetapi elakkan laluan yang terlalu panjang).
Semakan Pengisytiharan Kebergantungan
Anda mempunyai binaan berbilang projek dengan projek kecil web dan projek kecil core. Projek kecil web perlu menggunakan kelas daripada projek kecil core untuk logik dalamannya, tetapi tidak mendedahkan API core kepada mana-mana pengguna seterusnya bagi web.
Imbas Kembali Kebergantungan Antara Projek
Syabas! Dalam pelajaran ini, anda telah mempelajari cara mengurus kebergantungan antara projek kecil dalam binaan Gradle berbilang projek.
- Kita membincangkan cara mengisytiharkan kebergantungan menggunakan
project(':subproject'). - Kita membincangkan kepentingan
implementationuntuk kegunaan dalaman. - Anda melihat cara Gradle mengendalikan susunan binaan secara automatik.
- Kita meneroka amalan terbaik untuk pengurusan kebergantungan yang bersih.
Penguasaan kebergantungan antara projek penting untuk membina aplikasi besar dan bermodul dengan cekap menggunakan Gradle!
Pelajari Groovy dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Kebergantungan Antara Projek” percuma?
Ya — teks penuh “Kebergantungan Antara Projek” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Groovy & Gradle: Automasi JVM dan Kejuruteraan Binaan, tingkat taraf kepada CoddyKit PRO. Kursus Groovy & Gradle: Automasi JVM dan Kejuruteraan Binaan merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Kebergantungan Antara Projek”?
Urus kebergantungan antara subprojek dan pastikan susunan binaan serta penyelesaian artifak yang betul. Anda berlatih Groovy & Gradle: Automasi JVM dan Kejuruteraan Binaan menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Groovy & Gradle: Automasi JVM dan Kejuruteraan Binaan?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Groovy & Gradle: Automasi JVM dan Kejuruteraan Binaan di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Kebergantungan Antara Projek” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Groovy & Gradle: Automasi JVM dan Kejuruteraan Binaan ini?
Ya. Setiap pelajaran Groovy & Gradle: Automasi JVM dan Kejuruteraan Binaan menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Struktur Projek Monorepo
- Subprojek & Konfigurasi
- Kebergantungan Antara Projek
- Binaan Komposit dan Gubahan Binaan