Saya ingin menggunakan versi master lib saya dari mavencentral.
Apakah mungkin untuk mendeklarasikan repositori git sebagai dependensi di android gradle?
Saya ingin menggunakan versi master lib saya dari mavencentral.
Apakah mungkin untuk mendeklarasikan repositori git sebagai dependensi di android gradle?
Jawaban:
Bagi saya cara terbaik adalah:
Langkah 1. Tambahkan repositori JitPack ke build.gradle di akhir repositori:
repositories {
// ...
maven { url "https://jitpack.io" }
}
Langkah 2. Tambahkan ketergantungan di formulir
dependencies {
compile 'com.github.User:Repo:Tag'
}
Dimungkinkan untuk membangun komit terbaru di cabang master, misalnya:
dependencies {
compile 'com.github.jitpack:gradle-simple:master-SNAPSHOT'
}
-SNAPSHOT
jitpack.io/docs/#snapshots
buildscript
Atau Anda dapat mendaftarkan repositori sebagai submodul seperti ini
$ git submodule add my_sub_project_git_url my-sub-project
Kemudian sertakan proyek dalam file settings.gradle Anda yang akan terlihat seperti ini
include ':my-app', ':my-sub-project'
Terakhir, kompilasi proyek sebagai dependensi dalam file build.gradle aplikasi Anda seperti ini
dependencies {
compile project(':my-sub-project')
}
Kemudian, saat mengkloning proyek Anda, Anda hanya perlu menambahkan opsi --recursive
untuk membuat git secara otomatis mengkloning repositori root, dan semua submodulnya.
git clone --recursive my_sub_project_git_url
Saya harap ini membantu.
Sekarang ada fitur baru di gradle yang memungkinkan Anda menambahkan dependensi sumber dari git.
Anda harus terlebih dahulu menentukan repo dalam settings.gradle
file dan memetakannya ke pengenal modul:
sourceControl {
gitRepository("https://github.com/gradle/native-samples-cpp-library.git") {
producesModule("org.gradle.cpp-samples:utilities")
}
}
Dan sekarang build.gradle
Anda dapat menunjuk ke tag tertentu (misalnya: 'v1.0'):
dependencies {
...
implementation 'org.gradle.cpp-samples:utilities:v1.0'
}
Atau ke cabang tertentu:
dependencies {
...
implementation('org.gradle.cpp-samples:utilities') {
version {
branch = 'release'
}
}
}
Peringatan:
Referensi:
Menurut saya Gradle tidak mendukung untuk menambahkan repositori git sebagai dependensi. Solusi saya adalah:
Saya berasumsi bahwa Anda menginginkan repo perpustakaan di luar folder repo proyek utama, jadi setiap proyek akan menjadi repo git independen, dan Anda dapat membuat komitmen ke perpustakaan dan repositori git proyek utama secara mandiri.
Dengan asumsi Anda ingin memiliki folder proyek perpustakaan di folder yang sama dengan folder proyek utama,
Anda bisa:
Di tingkat atas settings.gradle, deklarasikan repositori perpustakaan sebagai proyek, mengingat lokasinya di sistem file
// Reference: https://looksok.wordpress.com/2014/07/12/compile-gradle-project-with-another-project-as-a-dependency/
include ':lib_project'
project( ':lib_project' ).projectDir = new File(settingsDir, '../library' )
Gunakan plugin gradle-git untuk menggandakan perpustakaan dari repositori git
import org.ajoberstar.gradle.git.tasks.*
buildscript {
repositories { mavenCentral() }
dependencies { classpath 'org.ajoberstar:gradle-git:0.2.3' }
}
task cloneLibraryGitRepo(type: GitClone) {
def destination = file("../library")
uri = "https://github.com/blabla/library.git"
destinationPath = destination
bare = false
enabled = !destination.exists() //to clone only once
}
Dalam dependensi proyek Anda, katakanlah bahwa kode proyek Anda bergantung pada folder proyek git
dependencies {
compile project(':lib_project')
}
Hal terdekat yang saya temukan adalah https://github.com/bat-cha/gradle-plugin-git-dependencies tetapi saya tidak bisa membuatnya berfungsi dengan plugin android, terus mencoba menarik dari maven bahkan setelah git repo dimuat.