2015-11-24 17 views
6

Tôi đang phát triển một plugin tùy chỉnh gradle và sự phụ thuộc đối với cái nhìn dự án Plugin của tôi như thế này:Gradle Tuỳ chỉnh Plugin: gradleApi() vs phụ thuộc Explicit

dependencies { 
    compile gradleApi() 
    compile localGroovy() 
    compile('com.xxx.oozie:oozie-dsl-parser:1.0.127') { 
    exclude module: 'groovy-all' 
    } 

    testCompile('org.spockframework:spock-core:1.0-groovy-2.3') { 
    exclude module: 'groovy-all' 
    } 
} 

Tuy nhiên, vì lợi ích của tái sản xuất xây dựng, Tôi m tự hỏi liệu có nên sử dụng localGroovy()gradleApi() không.

Sau nhiều googling, mặc dù tôi có thể thay thế localGroovy() với một phiên bản cụ thể của groovy, tôi dường như không thể tìm thấy một câu trả lời dứt khoát về những gì tôi sẽ thay thế gradleApi() với.

Các bạn có bất kỳ đề xuất nào không?

Cảm ơn!

+1

Cảm ơn đã sửa @ Opal. –

+0

Bạn vẫn đang tìm câu trả lời? – tomasulo

+0

Có vui lòng !!!!! –

Trả lời

0

Tôi khuyên bạn nên áp dụng java-gradle-plugin. Nó tự động thêm phụ thuộc gradleApi() và cũng bao gồm một số cấu hình bản mẫu khác: https://docs.gradle.org/current/userguide/javaGradle_plugin.html#gsc.tab=0

Phiên bản của gradleApi() được thêm vào dưới dạng phiên bản Gradle mà bạn đang sử dụng để tạo dự án. Ví dụ: nếu trình bao bọc của bạn có Gradle 2.14.1, API Gradle đã sử dụng sẽ là phiên bản đó.

Bạn cũng không phải lo lắng về localGroovy() bởi vì nó đã được bao gồm trong gradleTestKit() phụ thuộc được bổ sung bởi các plugin: https://docs.gradle.org/current/userguide/test_kit.html#sub:test-kit-automatic-classpath-injection&gsc.tab=0

Dưới đây là một ví dụ:

apply plugin: 'groovy' 
apply plugin: 'java-gradle-plugin' 

dependencies { 
    testCompile('org.spockframework:spock-core:1.0-groovy-2.4') { 
     exclude module: 'groovy-all' 
    } 
} 
Các vấn đề liên quan