Gradle - исключить jar из зависимостей только для производства

Я собираюсь развернуть свое веб-приложение Grails 3, используя gradle assemble для создания файла войны, и я пытаюсь исключить из него несколько файлов jar.

В частности, я добавил в свой файл конфигурации build.gradle

dependencies {
    [...]
    assets 'com.bertramlabs.plugins:sass-asset-pipeline:2.7.2'
}

Это внутренние зависимости для вышеупомянутого плагина, который помогает мне обрабатывать файлы SASS в CSS.

 \--- com.bertramlabs.plugins:sass-asset-pipeline:2.7.2
      +--- com.bertramlabs.plugins:asset-pipeline-core:2.7.2
      |    +--- org.mozilla:rhino:1.7R4
      |    +--- com.google.javascript:closure-compiler:v20151015
      |    \--- commons-logging:commons-logging:1.1.1
      +--- log4j:log4j:1.2.17
      +--- org.jruby:jruby-complete:1.7.11 -> 1.7.18
      \--- com.bertramlabs.plugins:jruby-container:0.6.1
           \--- org.jruby:jruby-complete:1.7.18

Я исключил группу org.ruby, так как jar имеет размер 22 МБ и не нужен в производстве, поскольку задача assemble уже объединяет мои ресурсы css.

configurations {
    compile.exclude group: 'org.jruby'
    [...]
}

Это работает для производственной среды, но зависимость необходима для разработки.

Есть ли быстрый способ добиться этого? Заранее спасибо!


person ilPittiz    schedule 10.03.2016    source источник


Ответы (2)


я еще не тестировал это. В build.gradle в зависимостях поставить

if (!project.hasProperty('grailsEnv') || project.grailsEnv.equals('dev')) { compile.exclude group: 'org.jruby' }
person Arjang    schedule 10.03.2016
comment
Я не знал, что что-то вроде project было включено в область действия, это мне очень помогло! К сожалению, свойства grailsEnv нет, но после нескольких попыток я нашел решение (ответ добавлен). - person ilPittiz; 11.03.2016
comment
Спасибо за решение. Я видел свое решение здесь. - person Arjang; 11.03.2016

Благодаря предложению Arjang это решило мою проблему (хотя я уверен, что у меня должно быть какое-то другое решение)

assets ("com.bertramlabs.plugins:sass-asset-pipeline:2.7.2") {
    if(project.gradle.startParameter.taskNames.contains('assemble')) {
        exclude group: 'org.jruby'
    }
}
person ilPittiz    schedule 11.03.2016