Ale*_*rov 100 android android-build android-studio android-gradle-plugin
我想从mavencentral使用我的lib的主版本.
是否可以在android gradle中将git存储库声明为依赖?
sun*_*day 135
对我来说,最好的方法是:
步骤1.将JitPack存储库添加到构建文件中将其添加到存储库末尾的build.gradle中:
repositories {
// ...
maven { url "https://jitpack.io" }
}
Run Code Online (Sandbox Code Playgroud)
步骤2.在表单中添加依赖项
dependencies {
compile 'com.github.User:Repo:Tag'
}
Run Code Online (Sandbox Code Playgroud)
可以在主分支上构建最新的提交,例如:
__CODE__
tru*_*pin 35
或者您可以将存储库注册为这样的子模块
$ git submodule add my_sub_project_git_url my-sub-project
Run Code Online (Sandbox Code Playgroud)
然后在settings.gradle文件中包含项目,该文件应如下所示
include ':my-app', ':my-sub-project'
Run Code Online (Sandbox Code Playgroud)
最后,将项目编译为应用程序build.gradle文件中的依赖项,如下所示
dependencies {
compile project(':my-sub-project')
}
Run Code Online (Sandbox Code Playgroud)
然后,在克隆项目时,您只需添加选项--recursive
以使git自动克隆根存储库及其所有子模块.
git clone --recursive my_sub_project_git_url
Run Code Online (Sandbox Code Playgroud)
我希望它有所帮助.
Mis*_*ith 22
gradle 现在有一个新功能,可以让您从 git 添加源依赖项。
您首先需要在settings.gradle
文件中定义 repo并将其映射到模块标识符:
sourceControl {
gitRepository("https://github.com/gradle/native-samples-cpp-library.git") {
producesModule("org.gradle.cpp-samples:utilities")
}
}
Run Code Online (Sandbox Code Playgroud)
现在build.gradle
你可以指向一个特定的标签(例如:'v1.0'):
dependencies {
...
implementation 'org.gradle.cpp-samples:utilities:v1.0'
}
Run Code Online (Sandbox Code Playgroud)
或者到一个特定的分支:
dependencies {
...
implementation('org.gradle.cpp-samples:utilities') {
version {
branch = 'release'
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意事项:
参考:
我不认为gradle支持添加git repo作为依赖.我的解决方法是:
我假设您希望库repo位于主项目仓库的文件夹之外,因此每个项目都将是独立的git repos,并且您可以独立地提交到库和主项目git repos.
假设您希望将库项目的文件夹放在与主项目文件夹相同的文件夹中,
你可以:
在顶级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' )
Run Code Online (Sandbox Code Playgroud)
使用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
}
Run Code Online (Sandbox Code Playgroud)
在项目的依赖项中,假设项目的代码取决于git项目的文件夹
dependencies {
compile project(':lib_project')
}
Run Code Online (Sandbox Code Playgroud)
我发现最接近的是https://github.com/bat-cha/gradle-plugin-git-dependencies但是我无法使用android插件,即使在git之后仍然试图从maven中取出repos已加载.
归档时间: |
|
查看次数: |
44011 次 |
最近记录: |