Ich möchte die Master-Version meiner Bibliothek von mavencentral verwenden.
Ist es möglich, Git-Repository als Abhängigkeit in Android Gradle zu deklarieren?
Ich möchte die Master-Version meiner Bibliothek von mavencentral verwenden.
Ist es möglich, Git-Repository als Abhängigkeit in Android Gradle zu deklarieren?
Antworten:
Für mich ist der beste Weg:
Schritt 1. Fügen Sie das JitPack-Repository am Ende der Repositorys zu build.gradle hinzu:
repositories {
// ...
maven { url "https://jitpack.io" }
}
Schritt 2. Fügen Sie die Abhängigkeit in das Formular ein
dependencies {
compile 'com.github.User:Repo:Tag'
}
Es ist möglich, das neueste Commit für den Hauptzweig zu erstellen, zum Beispiel:
dependencies {
compile 'com.github.jitpack:gradle-simple:master-SNAPSHOT'
}
-SNAPSHOT
jitpack.io/docs/#snapshots
buildscript
Oder Sie können ein Repository wie folgt als Submodul registrieren
$ git submodule add my_sub_project_git_url my-sub-project
Fügen Sie dann das Projekt in Ihre settings.gradle-Datei ein, die so aussehen sollte
include ':my-app', ':my-sub-project'
Kompilieren Sie das Projekt schließlich als Abhängigkeit in Ihrer Anwendungsdatei build.gradle wie folgt
dependencies {
compile project(':my-sub-project')
}
Wenn Sie dann Ihr Projekt klonen, müssen Sie nur die Option hinzufügen --recursive
, dass git das Root-Repository und alle seine Submodule automatisch klont.
git clone --recursive my_sub_project_git_url
Ich hoffe, es hilft.
In gradle gibt es jetzt eine neue Funktion, mit der Sie Quellabhängigkeiten von git hinzufügen können.
Sie müssen zuerst das Repo in der settings.gradle
Datei definieren und es einer Modulkennung zuordnen:
sourceControl {
gitRepository("https://github.com/gradle/native-samples-cpp-library.git") {
producesModule("org.gradle.cpp-samples:utilities")
}
}
Und jetzt können build.gradle
Sie in Ihrem auf ein bestimmtes Tag verweisen (zB: 'v1.0'):
dependencies {
...
implementation 'org.gradle.cpp-samples:utilities:v1.0'
}
Oder zu einem bestimmten Zweig:
dependencies {
...
implementation('org.gradle.cpp-samples:utilities') {
version {
branch = 'release'
}
}
}
Vorsichtsmaßnahmen:
Verweise:
Ich glaube nicht, dass Gradle das Hinzufügen eines Git-Repositorys als Abhängigkeit unterstützt. Meine Problemumgehung ist:
Ich gehe davon aus, dass Sie das Bibliotheks-Repo außerhalb des Ordners des Hauptprojekt-Repos haben möchten, sodass jedes Projekt unabhängige Git-Repos sind und Sie unabhängig voneinander Commits für die Bibliothek und die Hauptprojekt-Git-Repositorys vornehmen können.
Angenommen, Sie möchten, dass sich der Ordner des Bibliotheksprojekts im selben Ordner befindet wie der Ordner des Hauptprojekts.
Du könntest:
Deklarieren Sie in der Datei settings.gradle der obersten Ebene das Bibliotheksrepository als Projekt, da es sich im Dateisystem befindet
// 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' )
Verwenden Sie das Gradle-Git-Plugin , um die Bibliothek aus dem Git-Repository zu klonen
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
}
Angenommen, der Code Ihres Projekts hängt in den Abhängigkeiten Ihres Projekts vom Ordner des Git-Projekts ab
dependencies {
compile project(':lib_project')
}
Das nächste, was ich gefunden habe, ist https://github.com/bat-cha/gradle-plugin-git-dependencies, aber ich kann es nicht mit dem Android-Plugin zum Laufen bringen. Ich versuche auch nach dem Git immer wieder, aus Maven zu ziehen Repos werden geladen.