0

我即将部署我的 Grails 3 web 应用程序gradle assemble来创建 war 文件,并且我试图从中排除一些 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 为 22MB,并且在生产中不需要,因为该assemble任务已经捆绑了我的 css 资源。

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

这适用于生产环境,但开发需要依赖项。

有没有一种快速的方法来实现这一目标?提前致谢!

4

2 回答 2

1

我还没有测试过这个。在依赖项中的 build.gradle 中放置

if (!project.hasProperty('grailsEnv') || project.grailsEnv.equals('dev')) { compile.exclude group: 'org.jruby' }
于 2016-03-10T19:23:50.990 回答
1

感谢 Arjang 的建议,这解决了我的问题(尽管我确信我必须有其他解决方案)

assets ("com.bertramlabs.plugins:sass-asset-pipeline:2.7.2") {
    if(project.gradle.startParameter.taskNames.contains('assemble')) {
        exclude group: 'org.jruby'
    }
}
于 2016-03-11T10:41:48.407 回答