簡體   English   中英

使用Grgit在我的gradle上克隆git存儲庫

[英]clone git repository on my gradle using Grgit

我有一個gradle項目,它運行一個腳本,並且在其中某個地方,我需要克隆一個git存儲庫。 我之前曾用svn運行它,但我將公司SCM更改為gitlab,並且我需要更改代碼,因此現在可以從git復制存儲庫。

我需要一些類似於此SVN代碼的東西:

task exportLibs(type: SvnExport) {
  svnUrl = "http://<svn-url>"
  targetDir = "<target-dir-to-download-files>"
}

因此,我閱讀了有關Grgit的信息,但在線上沒有一個示例,介紹如何執行簡單的git克隆(僅此鏈接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'
}

我已經使用此屬性對其進行了初始化,但出現以下錯誤:

評估根項目'grgit'時發生問題。

無法獲得類型為org.gradle.api.Project的根項目“ grgit”的未知屬性“ org”。

該項目的github頁面上有一些示例和API文檔的鏈接 以下代碼片段將解決您的問題(在這種情況下,它將把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')
    }
}

回答已編輯的問題

文檔指出org.ajoberstar.grgit.auth.hardcoded.allow是系統屬性。 你的任務是不設置系統屬性,一看便知,以有效的方式這個問題上的常規設置系統屬性的例子。

我的代碼中可能包含一些特殊的導入,導致最后我唯一可以做的克隆就是shell exec。 問題已解決,但不是我遇到的錯誤...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM