2012-12-05 9 views
20

मान लीजिए कि मेरे पास एक ग्रेबल बिल्ड स्क्रिप्ट है और रिमोट गिट रिपोजिटरी क्लोन करने के लिए एक कार्य लिखना चाहता हूं। मैं उसको कैसे करू?ग्रेड: एक कार्य में एक गिट रेपो कैसे क्लोन करें?

उत्तर

20

क्लोनिंग Gradle-git plugin उपयोग किया जा सकता प्लगइन एक क्लोन विधि है। प्लगइन का उपयोग करने के लिए आप यह पहली बार डाउनलोड करना चाहिए:

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 
} 
+1

रेपो की एक विशिष्ट फीचर शाखा क्लोन करने का कोई तरीका है? –

+0

क्या यह उत्तर अभी भी सही है? ऐसा लगता है कि Gradle 2.7 गिट प्लग-इन की अब आवश्यकता नहीं है। क्या वो सही है? https://github.com/gradle/gradle/pull/386 – haysclark

+0

क्लोन करने के लिए शाखा को आप कैसे निर्दिष्ट करते हैं? – revolutionary

4

Gradle-git प्लगइन में GitClone task है जो मदद करनी चाहिए। मैं इसका उपयोग कैसे कर सकता हूं इस पर आपकी सहायता नहीं कर सकता क्योंकि मुझे ग्रैडल नहीं पता है।

+2

हाँ, मैंने इसे पहले ही पाया है। आप देखते हैं, मैं ग्रैडल के लिए नौसिखिया हूं, इसलिए मुझे एक रेपो क्लोन करने के लिए प्लगइन का उपयोग करने के तरीके पर एक विस्तृत निर्देश की आवश्यकता है। वैसे भी आपके उत्तर को ऊपर उठाना होगा, धन्यवाद –

5

यहां एक गिट प्लगइन है - दस्तावेज़ यहां: Gradle-gitGitClone

शायद की तर्ज पर कुछ:

GitClone clone = new GitClone(); 
clone.setUri("http://remote.repository/"); 
clone.setDestinationPath("//local/path"); 
clone.setBare(false); 
clone.cloneRepo(); 
5

ऊपर उल्लिखित Gradle-Git प्लगइन सीधा "क्लोन इस रेपो प्रदान करने से पर स्थानांतरित कर दिया लगता है:

buildscript { 
    repositories { mavenCentral() } 
    dependencies { classpath 'org.ajoberstar:gradle-git:0.2.3' } 
} 

फिर इस तरह का काम लिखना

https://github.com/palominolabs/gradle-git-clone-task

+0

इसके लिए धन्यवाद। मैं इसे किसी अन्य कार्य के अंदर कैसे बुलाऊंगा? – vsp

+0

ऐसा करने का कार्य-तरीका तरीका * अन्य * कार्य पर निर्भर करेगा जो कि GitCloneTask प्रकार है। हालांकि, मुझे कोई कारण नहीं दिख रहा है कि आप GitCloneTask ऑब्जेक्ट क्यों नहीं बना सकते हैं और अगर आप चाहें तो SetUpRepo() को आमंत्रित करते हैं! गुणों को वांछित और आग के रूप में सेट करें: https://github.com/palominolabs/gradle-git-clone-task/blob/master/src/main/groovy/com/palominolabs/gradle/task/git/clone/GitCloneTask। groovy – mpierce

16
के नए संस्करणों के साथ

: उस निर्देशिका के लिए "कार्यक्षमता, तो मैं एक साधारण कार्य है कि सिर्फ इस करता है लिखा था(0.7.0 और ऊपर), आप इस तरह का कार्य बनायेंगे:

import org.ajoberstar.grgit.* 

task clone << { 
    Grgit.clone(dir: file('build/repo'), uri: '[email protected]:user/repo.git') 
} 
+1

रेपो की एक विशिष्ट विशेषता शाखा क्लोन करने का कोई तरीका है? –

+0

कस्टम ग्रेडल प्लगइन में क्लोन ऑपरेशन का उपयोग कैसे करें? – sver

+0

@ObaidMaroof, मदद करेगा चेकिंग ऑपरेशन के लिए हो सकता है [grgit.checkout (शाखा: 'मौजूदा शाखा')] (http://ajoberstar.org/grgit/docs/groovydoc/org/ajoberstar/grgit/operation/CheckoutOp .html)। – Abhijeet