2012-04-09 33 views
16

Tôi muốn tạo một plugin tự động áp dụng khác (các plugin bên ngoài). Điều này đòi hỏi phải thiết lập phụ thuộc buildscript cho plugin trước khi tôi gọi "áp dụng plugin". Tuy nhiên có vẻ như tôi không thể thêm phụ thuộc buildscript vào plugin hoặc tôi nhận được: Bạn không thể thay đổi cấu hình không ở trạng thái chưa được giải quyết!Tạo một plugin Gradle với sự phụ thuộc vào một plugin (bên ngoài) khác

Có giải pháp cho vấn đề này không?

mẫu của tôi (không làm việc) mã:

import org.gradle.api.Project 
import org.gradle.api.Plugin 
class SamplePlugin implements Plugin<Project>{ 
    void apply(Project project) { 

    project.buildscript.dependencies.add("classpath","net.sourceforge.cobertura:cobertura:1.9.4.1"); 

    project.configure(project){   
     apply plugin: 'cobertura' 
    } 
    } 
} 

Trả lời

7

Cách để đi về việc này là để xuất bản một pom.xml hoặc ivy.xml cùng với Jar plugin mà mô tả sự phụ thuộc của plugin. Ngoài ra, bạn có thể viết một plugin tập lệnh tuyên bố các phụ thuộc của nó trong phần buildscript {}. Một kịch bản lệnh chỉ đơn giản là một kịch bản xây dựng tái sử dụng được áp dụng với apply from: ....

+3

Trong trường hợp bất kỳ ai quan tâm đến cách thực hiện điều này một cách chính xác: bạn phải mở rộng POM mặc định trong MavenPublication của bạn. Plugin Nebula của Netflix là một nguồn tuyệt vời cho các ví dụ: https://github.com/nebula-plugins/nebula-publishing-plugin/blob/master/src%2Fmain%2Fgroovy%2Fnebula%2Fplugin%2Fpublishing%2Fmaven%2FMavenJavaPublishingPlugin.groovy – Matthias

+9

Liên kết mới nhất tới Tinh vân xuất bản Plugin, trong trường hợp ai đó truy cập trang này. https://github.com/nebula-plugins/nebula-publishing-plugin/blob/master/src/main/groovy/nebula/plugin/publishing/maven/MavenPublishPlugin.groovy – dmahapatro

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