Eu quero usar a versão master da minha lib do mavencentral.
É possível declarar o repositório git como dependência no android gradle?
Eu quero usar a versão master da minha lib do mavencentral.
É possível declarar o repositório git como dependência no android gradle?
Respostas:
Para mim, a melhor maneira é:
Etapa 1. Adicione o repositório JitPack a build.gradle no final dos repositórios:
repositories {
// ...
maven { url "https://jitpack.io" }
}
Etapa 2. Adicionar a dependência no formulário
dependencies {
compile 'com.github.User:Repo:Tag'
}
É possível construir o commit mais recente no branch master, por exemplo:
dependencies {
compile 'com.github.jitpack:gradle-simple:master-SNAPSHOT'
}
-SNAPSHOT
jitpack.io/docs/#snapshots
buildscript
Ou você pode registrar um repositório como um submódulo como este
$ git submodule add my_sub_project_git_url my-sub-project
Em seguida, inclua o projeto em seu arquivo settings.gradle, que deve se parecer com este
include ':my-app', ':my-sub-project'
Finalmente, compile o projeto como uma dependência no arquivo build.gradle de seu aplicativo como este
dependencies {
compile project(':my-sub-project')
}
Então, ao clonar seu projeto, você só terá que adicionar a opção --recursive
de fazer o git clonar automaticamente o repositório raiz e todos os seus submódulos.
git clone --recursive my_sub_project_git_url
Espero que ajude.
Agora há um novo recurso no gradle que permite adicionar dependências de origem do git.
Primeiro, você precisa definir o repo no settings.gradle
arquivo e mapeá-lo para um identificador de módulo:
sourceControl {
gitRepository("https://github.com/gradle/native-samples-cpp-library.git") {
producesModule("org.gradle.cpp-samples:utilities")
}
}
E agora build.gradle
você pode apontar para uma tag específica (por exemplo: 'v1.0'):
dependencies {
...
implementation 'org.gradle.cpp-samples:utilities:v1.0'
}
Ou para um ramo específico:
dependencies {
...
implementation('org.gradle.cpp-samples:utilities') {
version {
branch = 'release'
}
}
}
Ressalvas:
Referências:
Não acho que o Gradle oferece suporte para adicionar um repositório git como uma dependência. Minha solução alternativa é:
Presumo que você queira o repositório da biblioteca fora da pasta do repositório principal do projeto, então cada projeto será repositório git independente e você pode fazer commits para a biblioteca e repositórios git do projeto principal independentemente.
Supondo que você deseja ter a pasta do projeto de biblioteca na mesma pasta que a pasta do projeto principal,
Você poderia:
No settings.gradle de nível superior, declare o repositório da biblioteca como um projeto, considerando sua localização no sistema de arquivos
// 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 o plugin gradle-git para clonar a biblioteca do repositório 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
}
Nas dependências do seu projeto, diga que o código do seu projeto depende da pasta do projeto git
dependencies {
compile project(':lib_project')
}
A coisa mais próxima que encontrei é https://github.com/bat-cha/gradle-plugin-git-dependencies, mas não consigo fazê-lo funcionar com o plug-in do Android, continuo tentando puxar do maven mesmo após o git repos são carregados.