Grgit和gradle-git
Git是一个很流行的分布式版本管理工具。能在构建过程中与Git进行交互,可以提供更强大和更一致的结果。
JGit提供了与Git仓库交互的强大JavaAPI。然而,在Groovy上下本使用它会笨重,需要在所要执行的表达式包一堆换七八糟的东东。Grgit是Andre wOberstar实现的JGit封装器,为基于Groovy的工具与Git仓库交互提供了更简洁流畅的API。 gradle-git同样是由Andrew Oberstar实现的一系列Gradle插件:
- org.ajoberstar.grgit - 提供一个Grgit实例,允许与Gradle项目所在的Git仓库交互
- org.ajoberstar.github-pages - 向Github仓库的gh-pages分支发布文件
- org.ajoberstar.release-base -提供用于从项目状态和所在Git仓库推断当前项目版本和创建新版本的通用结构
- org.ajoberstar.release-opinion -用于org.ajoberstar.release-base的默认选项,遵从语义版本控制(Semantic Versioning)下面是一个Gradle任务示例,用于从Git仓库克隆项目。
build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.ajoberstar:gradle-git:1.2.0'
}
}
import org.ajoberstar.gradle.git.tasks.*
task cloneGitRepo(type: GitClone) {
def destination = file("destination_folder")
uri = "your_git_repo_uri"
destinationPath = destination
bare = false
enabled = !destination.exists() //to clone only once
}