我有一个gradle项目,它运行一个脚本,并且在其中某个地方,我需要克隆一个git存储库。
我之前曾用svn运行它,但是我将公司SCM更改为gitlab,并且我需要更改代码,因此现在它将从git复制存储库。
我需要一些类似于此SVN代码的东西:
task exportLibs(type: SvnExport) {
svnUrl = "http://<svn-url>"
targetDir = "<target-dir-to-download-files>"
}
因此,我读到了有关Grgit的信息,但在线上没有一个示例,介绍如何进行简单的git clone(仅此链接http://ajoberstar.org/grgit/docs/groovydoc/org/ajoberstar/grgit/operation/CloneOp.html)。如果有人可以帮助我解决这个问题,或者让我参加他的grgit项目,以便我从中学习,那就太好了!
- 编辑 -
当我尝试如下使用grgit时:
group 'test'
version '1.0-SNAPSHOT'
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "org.ajoberstar:gradle-git:1.7.2"
}
}
apply plugin: 'java'
apply plugin: 'org.ajoberstar.grgit'
org.ajoberstar.grgit.auth.hardcoded.allow=true
task pullFromGit{
doLast {
//grgit.pull()
}
}
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}
我已经使用此属性对其进行了初始化,但出现以下错误:
最佳答案
在项目的github页面上有一个指向some examples and the API documentation的链接。以下代码段将解决您的问题(在这种情况下,它将把grgit项目克隆到grgit
目录中)
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.ajoberstar:grgit:1.7.2'
}
}
task hello {
doLast {
org.ajoberstar.grgit.Grgit.clone(dir: 'grgit', uri: 'https://github.com/ajoberstar/grgit.git')
}
}
回答已编辑的问题
documentation声明
org.ajoberstar.grgit.auth.hardcoded.allow
是系统属性。您的分配不是设置系统属性的有效方法,有关在groovy中设置系统属性的示例,请参见this question的答案。关于java - 使用Grgit在我的gradle上克隆git存储库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45275731/