Je veux utiliser la version maître de ma librairie depuis mavencentral.
Est-il possible de déclarer le dépôt git comme dépendance dans Android gradle ?
Je veux utiliser la version maître de ma librairie depuis mavencentral.
Est-il possible de déclarer le dépôt git comme dépendance dans Android gradle ?
Pour moi, le meilleur moyen est :
Étape 1. Ajoutez le dépôt JitPack à build.gradle à la fin de repositories :
repositories {
// ...
maven { url "https://jitpack.io" }
}
Étape 2. Ajoutez la dépendance dans le formulaire
dependencies {
implementation 'com.github.User:Repo:Tag'
}
Il est possible de construire le dernier commit sur la branche master, par exemple :
dependencies {
implementation 'com.github.jitpack:gradle-simple:master-SNAPSHOT'
}
Ou vous pouvez enregistrer un référentiel comme un sous-module comme ceci
$ git submodule add my_sub_project_git_url my-sub-project
Ensuite, incluez le projet dans votre fichier settings.gradle qui devrait ressembler à ceci
include ':my-app', ':my-sub-project'
Enfin, compilez le projet en tant que dépendance dans le fichier build.gradle de votre application comme ceci
dependencies {
compile project(':my-sub-project')
}
Ensuite, lors du clonage de votre projet, il vous suffira d'ajouter l'option --recursive
pour que git clone automatiquement le dépôt Root, et tous ses sous-modules.
git clone --recursive my_sub_project_git_url
J'espère que cela vous aidera.
Il existe désormais une nouvelle fonctionnalité dans gradle qui vous permet d'ajouter des dépendances de source à partir de git.
Vous devez d'abord définir le repo dans le fichier settings.gradle
et le faire correspondre à un identifiant de module :
sourceControl {
gitRepository("https://github.com/gradle/native-samples-cpp-library.git") {
producesModule("org.gradle.cpp-samples:utilities")
}
}
Vous devrez utiliser URI("https://github.com/gradle/native-samples-cpp-library.git")
au lieu de "https://github.com/gradle/native-samples-cpp-library.git"
si vous utilisez Kotlin gradle.
Et maintenant, dans votre build.gradle
vous pouvez pointer vers une balise spécifique (par exemple : 'v1.0') :
dependencies {
...
implementation 'org.gradle.cpp-samples:utilities:v1.0'
}
Ou à une branche spécifique :
dependencies {
...
implementation('org.gradle.cpp-samples:utilities') {
version {
branch = 'release'
}
}
}
Mises en garde :
Références :
Je ne pense pas que Gradle supporte l'ajout d'un dépôt git comme dépendance. Ma solution de contournement est la suivante :
Je suppose que vous voulez que le dépôt de la bibliothèque soit en dehors du dossier du dépôt du projet principal, ainsi chaque projet sera un dépôt git indépendant, et vous pourrez faire des commits dans les dépôts git de la bibliothèque et du projet principal indépendamment.
En supposant que vous voulez avoir le dossier du projet de bibliothèque dans le même dossier que le dossier du projet principal,
Tu pourrais :
Dans le fichier settings.gradle de premier niveau, déclarez le dépôt de bibliothèques comme un projet, en indiquant son emplacement dans le système de fichiers.
// 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' )
Utilisez le plugin gradle-git pour cloner la bibliothèque à partir du dépôt 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
}
Dans les dépendances de votre projet, dites que le code de votre projet dépend du dossier du projet git
dependencies {
compile project(':lib_project')
}
La chose la plus proche que j'ai trouvée est https://github.com/bat-cha/gradle-plugin-git-dependencies mais je n'arrive pas à le faire fonctionner avec le plugin Android, il continue à essayer de tirer de maven même après que les dépôts git soient chargés.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.