2012-12-05 27 views

Trả lời

20

sự sao chép có thể được thực hiện bằng cách sử dụng Gradle-git plugin. Để sử dụng plugin bạn nên tải nó đầu tiên:

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

Sau đó viết một nhiệm vụ như thế này:

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

có cách nào để sao chép chi nhánh tính năng cụ thể của repo không? –

+0

Câu trả lời này có đúng không? Có vẻ như từ Gradle 2.7, trình cắm thêm Git không còn cần thiết nữa. Đúng không? https://github.com/gradle/gradle/pull/386 – haysclark

+0

làm cách nào để bạn chỉ định nhánh sao chép? – revolutionary

4

Plugin Gradle-git có số GitClone task cần trợ giúp. Tôi không thể giúp bạn về cách sử dụng nó vì tôi không biết Gradle.

+2

Vâng, tôi đã tìm thấy nó. Bạn thấy đấy, tôi là một newbie để Gradle, vì vậy tôi cần một hướng dẫn chi tiết về cách sử dụng plugin để sao chép một repo. Tuy nhiên, hãy trả lời câu trả lời của bạn, cảm ơn bạn –

5

Có plugin Git - tài liệu tại đây: Gradle-git. Plugin có một phương pháp nhân bản: GitClone

Có lẽ cái gì đó dọc theo dòng:

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

Các Gradle-git Plugin nói trên dường như đã chuyển từ việc cung cấp đơn giản "clone repo này vào thư mục đó" chức năng, vì vậy tôi đã viết một nhiệm vụ đơn giản mà chỉ này:

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

+0

Cảm ơn bạn vì điều đó. Tôi sẽ gọi nó như thế nào bên trong một nhiệm vụ khác? – vsp

+0

Cách nhiệm vụ-ish để làm điều này sẽ phụ thuộc vào * một nhiệm vụ khác thuộc kiểu GitCloneTask. Tuy nhiên, tôi không thấy lý do nào khiến bạn không thể tạo đối tượng GitCloneTask và gọi setUpRepo() nếu bạn muốn! Đặt thuộc tính như mong muốn và kích hoạt: https://github.com/palominolabs/gradle-git-clone-task/blob/master/src/main/groovy/com/palominolabs/gradle/task/git/clone/GitCloneTask. groovy – mpierce

16

với phiên bản mới hơn của gradle-git (0.7.0 trở lên), bạn sẽ tạo công việc như sau:

import org.ajoberstar.grgit.* 

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

là có cách nào để sao chép một chi nhánh tính năng cụ thể của repo? –

+0

Cách sử dụng thao tác nhân bản trong plugin tùy chỉnh gradle? – sver

+0

@ObaidMaroof, có thể là hoạt động thanh toán bằng cách sử dụng sẽ giúp [grgit.checkout (chi nhánh: 'existing-branch')] (http://ajoberstar.org/grgit/docs/groovydoc/org/ajoberstar/grgit/operation/CheckoutOp .html). – Abhijeet

Các vấn đề liên quan