2015-11-24 4 views
6

Я занимаюсь разработкой пользовательского Gradle плагина и зависимостей для моего плагина проекта выглядит следующим образом:Gradle Пользовательский Plugin: gradleApi() против Явного Dependency

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' 
    } 
} 

Однако в интересах воспроизводимого строит, я м интересно, целесообразно ли использовать localGroovy() и gradleApi().

После долгих поисковых запросов, хотя я мог бы заменить localGroovy() на определенную версию groovy, я не могу найти окончательного ответа на то, что я бы заменил gradleApi().

У вас есть предложения?

Спасибо!

+1

Спасибо за редактирование @ Opal. –

+0

Вы все еще ищете ответ? – tomasulo

+0

Да, пожалуйста !!!!! –

ответ

0

Предлагаю применить java-gradle-plugin. Он добавляет gradleApi() зависимость автоматически, а также включает в себя некоторые другие конфигурации шаблонных: https://docs.gradle.org/current/userguide/javaGradle_plugin.html#gsc.tab=0

Версия gradleApi(), который добавляется в зависимости зависит от версии Gradle, что вы используете сборку проекта. Например, если ваша обертка имеет Gradle 2.14.1, используемый Gradle API будет этой версии.

Вы также не должны беспокоиться о localGroovy(), потому что она уже включена в gradleTestKit() зависимость, которая добавляется с помощью плагина: https://docs.gradle.org/current/userguide/test_kit.html#sub:test-kit-automatic-classpath-injection&gsc.tab=0

Вот пример:

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

dependencies { 
    testCompile('org.spockframework:spock-core:1.0-groovy-2.4') { 
     exclude module: 'groovy-all' 
    } 
} 
Смежные вопросы