我想使用来自mavencentral的lib的主版本。
是否可以在Android Gradle中将git仓库声明为依赖项?
我想使用来自mavencentral的lib的主版本。
是否可以在Android Gradle中将git仓库声明为依赖项?
Answers:
对我来说最好的方法是:
步骤1.在存储库末尾将JitPack存储库添加到build.gradle:
repositories {
// ...
maven { url "https://jitpack.io" }
}
步骤2.在表单中添加依赖项
dependencies {
compile 'com.github.User:Repo:Tag'
}
可以在master分支上构建最新的提交,例如:
dependencies {
compile 'com.github.jitpack:gradle-simple:master-SNAPSHOT'
}
buildscript
或者您可以像这样将存储库注册为子模块
$ git submodule add my_sub_project_git_url my-sub-project
然后在您的settings.gradle文件中包含该项目,该文件应如下所示
include ':my-app', ':my-sub-project'
最后,像这样在您的应用程序build.gradle文件中将项目编译为依赖项
dependencies {
compile project(':my-sub-project')
}
然后,在克隆项目时,只需添加选项--recursive
即可使git自动克隆根存储库及其所有子模块。
git clone --recursive my_sub_project_git_url
希望对您有所帮助。
gradle中现在有一个新功能,可让您从git添加源依赖项。
首先,您需要在settings.gradle
文件中定义存储库,并将其映射到模块标识符:
sourceControl {
gitRepository("https://github.com/gradle/native-samples-cpp-library.git") {
producesModule("org.gradle.cpp-samples:utilities")
}
}
现在,您build.gradle
可以指向一个特定标签(例如:“ v1.0”):
dependencies {
...
implementation 'org.gradle.cpp-samples:utilities:v1.0'
}
或到特定分支:
dependencies {
...
implementation('org.gradle.cpp-samples:utilities') {
version {
branch = 'release'
}
}
}
注意事项:
参考文献:
我不认为Gradle支持添加git存储库作为依赖项。我的解决方法是:
我假设您希望库回购位于主项目回购文件夹的外部,因此每个项目都将是独立的git回购,并且您可以独立地对库和主项目git仓库进行提交。
假设您要将库项目的文件夹与主项目的文件夹放在同一文件夹中,
你可以:
在顶级settings.gradle中,将库存储库声明为一个项目,因为它位于文件系统中
// 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' )
使用gradle-git插件从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
}
在项目的依赖项中,说您的项目的代码取决于git项目的文件夹
dependencies {
compile project(':lib_project')
}
我找到的最接近的东西是https://github.com/bat-cha/gradle-plugin-git-dependencies,但是我无法让它与android插件一起使用,即使在git之后也一直尝试从maven中提取仓库被加载。