Quiero usar la versión maestra de mi lib de mavencentral.
¿Es posible declarar el repositorio de git como dependencia en Android Gradle?
Quiero usar la versión maestra de mi lib de mavencentral.
¿Es posible declarar el repositorio de git como dependencia en Android Gradle?
Respuestas:
Para mi la mejor forma es:
Paso 1. Agregue el repositorio JitPack a build.gradle al final de los repositorios:
repositories {
// ...
maven { url "https://jitpack.io" }
}
Paso 2. Agregue la dependencia en el formulario
dependencies {
compile 'com.github.User:Repo:Tag'
}
Es posible construir la última confirmación en la rama maestra, por ejemplo:
dependencies {
compile 'com.github.jitpack:gradle-simple:master-SNAPSHOT'
}
-SNAPSHOT
jitpack.io/docs/#snapshots
buildscript
O puede registrar un repositorio como un submódulo como este
$ git submodule add my_sub_project_git_url my-sub-project
Luego incluya el proyecto en su archivo settings.gradle que debería verse así
include ':my-app', ':my-sub-project'
Finalmente, compile el proyecto como una dependencia en el archivo build.gradle de su aplicación como este
dependencies {
compile project(':my-sub-project')
}
Luego, al clonar tu proyecto, solo tendrás que agregar la opción --recursive
para hacer que git clone automáticamente el repositorio raíz, y todos sus submódulos.
git clone --recursive my_sub_project_git_url
Espero que ayude.
Ahora hay una nueva característica en gradle que le permite agregar dependencias de origen desde git.
Primero debe definir el repositorio en el settings.gradle
archivo y asignarlo a un identificador de módulo:
sourceControl {
gitRepository("https://github.com/gradle/native-samples-cpp-library.git") {
producesModule("org.gradle.cpp-samples:utilities")
}
}
Y ahora en su build.gradle
puede apuntar a una etiqueta específica (por ejemplo: 'v1.0'):
dependencies {
...
implementation 'org.gradle.cpp-samples:utilities:v1.0'
}
O a una rama específica:
dependencies {
...
implementation('org.gradle.cpp-samples:utilities') {
version {
branch = 'release'
}
}
}
Advertencias:
Referencias:
No creo que Gradle admita agregar un repositorio de git como dependencia. Mi solución es:
Supongo que desea que el repositorio de la biblioteca esté fuera de la carpeta del repositorio del proyecto principal, por lo que cada proyecto será repositorio de git independiente, y puede realizar confirmaciones en la biblioteca y los repositorios de git del proyecto principal de forma independiente.
Suponiendo que desea tener la carpeta del proyecto de la biblioteca en la misma carpeta que la carpeta del proyecto principal,
Tú podrías:
En settings.gradle de nivel superior, declare el repositorio de la biblioteca como un proyecto, dada su ubicación en el sistema de archivos
// 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' )
Use el complemento gradle-git para clonar la biblioteca del repositorio de 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
}
En las dependencias de su proyecto, diga que el código de su proyecto depende de la carpeta del proyecto git
dependencies {
compile project(':lib_project')
}
Lo más cercano que he encontrado es https://github.com/bat-cha/gradle-plugin-git-dependencies pero no puedo hacer que funcione con el complemento de Android, sigue intentando extraer de maven incluso después del git se cargan los repositorios.