Saya punya proyek sampel, dengan pengaturan berikut:
/root
+ Pure Java Lib
+ Android Test Lib
+ Android Test Project
Di mana ' Proyek Uji ' bergantung pada ' Tes Lib ', dan yang terakhir tergantung pada ' Lib Jawa Murni ' Mengkompilasi proyek dan meluncurkan pengaturan ini berfungsi dengan baik.
Saya sekarang berpikir tentang mengimpor ruang kerja Eclipse saya sebelumnya dan bekerja dengan Android studio, masalahnya adalah pengaturan proyek berbeda, dan saya ingin tetap seperti ini.
misalnya jika menggunakan contoh sebelumnya:
/root
+ Android Test Lib
+ Android Test Project
/Some Other folder (another repository for example)
+ Pure Java Lib
Saya sudah mencoba banyak konfigurasi, tetapi saya tidak menemukan cara untuk referensi proyek di luar lingkup folder induk (' root ' dalam contoh kasus).
Di banyak platform / modul Anda dapat menggunakan '..' untuk naik ke folder tetapi ini tidak berhasil untuk saya, mungkin saya salah menggunakannya.
Adakah yang tahu bagaimana ini bisa dicapai dengan Gradle?
MEMPERBARUI
Saya akan mencoba menjadi lebih umum:
/C:/
/Project A
+ Module 1 - Pure Java
+ Module 2 - Android Test Lib
+ Module 3 - Android Test Project
/Project B
+ Module 1 - Pure Java
+ Module 2 - Pure Java
+ Module 3 - Pure Java
Saya ingin menggunakan Modul 1 dari proyek B , dalam proyek A .
UPDATE: 09-03-19
Saya melihat ini sekarang dan saya harus memperbarui ... setelah hampir 6 tahun, hari ini saya lebih bijaksana, dan saya pasti bisa mengatakan masalahnya adalah saya salah memahami konsep "Sumber kebenaran".
Walaupun memiliki satu referensi ke perpustakaan adalah konsep yang bagus .. dan mungkin tampak seperti "Sumber kebenaran", "Sumber kebenaran" NYATA akan menjadi versi kode yang digunakan setiap proyek dari perpustakaan itu, karena perpustakaan dengan sendirinya memiliki versi .. banyak versi dan "Sumber kebenaran" relatif terhadap proyek yang menggunakan perpustakaan.
Cara yang benar adalah dengan menggunakan apa yang sebagian besar pengembang tidak suka, dan itu adalah git submodules, dan ya menduplikasi sumber di setiap proyek menyebabkan kemungkinan besar setiap proyek menggunakan versi kode yang berbeda.
Namun Anda perlu mengarahkan semua proyek Anda untuk menggunakan versi terbaru dan terhebat dari semua perpustakaan Anda .. yang merupakan tantangan dengan sendirinya
Alasannya adalah cara yang tepat untuk mengembangkan proyek dengan sumber pustaka adalah bahwa skala ini ... Anda dapat memiliki ratusan proyek masing-masing dengan konfigurasi pustaka sendiri.
sumber
Jawaban:
Dengan asumsi bahwa Some Other Folder adalah proyek gradle, Anda dapat menambahkan sesuatu seperti berikut ini ke file settings.gradle Anda:
sumber
Anda harus memasukkan pengaturan file Anda. Ketahui baris ini:
Maka Anda harus menambahkan di builde.gradle Anda (Modul: aplikasi) di pohon dependensi , baris ini:
atau masuk ke Struktur Proyek > aplikasi > Ketergantungan , klik Tambah , pilih 3 Ketergantungan Modul dan pilih modul Anda
sumber
compile project(path: ':library', configuration: 'variant')
. Di sini,variant
terdiri dariflavor
danbuildType
sebagaimana ditentukan oleh file perpustakaanbuild.gradle
. Misalnya, jika Anda inginrelease
membuat tipe perpustakaan dalamdevelop
rasa, makavariant
adalahdevelopRelease
.Dengan Gradle 1.10 (tidak tahu versi apa yang akan valid untuk ini) inilah yang saya buat berdasarkan respons yang diberikan di sini http://forums.gradle.org/gradle/topics/reference_external_project_as_dependancy
Saya memiliki proyek perpustakaan api, proyek perpustakaan umum dan proyek aplikasi utama. Masing-masing adalah proyek pengembangan yang berdiri sendiri dan kedua perpustakaan dimaksudkan untuk dibagikan di antara beberapa aplikasi.
Dalam settings.gradle untuk proyek umum:
Kemudian di setting.gradle proyek aplikasi utama:
Di masing-masing file build.gradle masing-masing, Anda hanya merujuknya dengan nama yang Anda berikan di settings.createProjectDescriptor seperti Anda bergantung pada proyek lainnya:
Ini sepertinya berhasil. Bahkan tidak membuat kesalahan untuk beberapa file DEX mendefinisikan perpustakaan api, saya curiga karena itu semua adalah bagian dari proses build yang sama dan Gradle cukup pintar untuk memahaminya.
sumber
Klik kanan pada proyek - Pilih "Buka Pengaturan Modul" - Pilih "Modul" di panel kiri - Klik pada simbol "+" di atas - Pilih "Impor Modul".
Setelah mengimpor Modul. Anda perlu menambahkannya sebagai ketergantungan untuk proyek Anda saat ini.
Tetap "Modul" Dipilih di panel kiri dan klik pada proyek Anda - Sekarang Masuk dalam tab dependensi dan klik pada simbol "+" yang terletak di bagian bawah - Pilih opsi ketiga "Ketergantungan Modul" dan jika Anda telah mengimpor proyek Anda dengan benar, itu akan menunjukkan kepada Anda semua modul yang tersedia yang dapat ditambahkan sebagai ketergantungan pada proyek Anda saat ini.
sumber
Saya mengajukan kembali pertanyaan ini dengan cara yang mencakup maksud poster asli di Bagaimana cara mereferensikan Perpustakaan Android dan Java khusus yang tinggal di luar direktori Proyek Android Utama kami?
Di sana saya menjawab pertanyaan saya sendiri. Pada intinya jawaban saya menggunakan @ Ethan's (penulis jawaban yang dipilih di utas saat ini) grading coding. Tetapi jawaban saya juga menavigasi beberapa gotcha lainnya dan memberikan contoh langkah demi langkah yang terperinci.
sumber
Seperti yang dikatakan Ethan, jika Anda menambahkan ini ke settings.gradle Anda, itu akan menambahkan proyek eksternal ke Android Studio (dalam contoh ini, ada di folder induk):
Kemudian, untuk menambahkannya sebagai dependensi dari salah satu proyek Anda, tambahkan saja di build.gradle dari proyek itu sebagai dependensi lain seperti ini (Anda juga dapat melakukannya secara grafis seperti di sini ):
sumber