Gradle - 仅在生产环境中从依赖项中排除 jar
Gradle - exclude jar from dependencies only for production
我正准备使用 gradle assemble
部署我的 Grails 3 网络应用程序以创建 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'
[...]
}
这适用于生产环境,但开发需要依赖项。
有没有快速实现的方法?提前致谢!
我还没有测试过这个。在 build.gradle 中的依赖项中放入
if (!project.hasProperty('grailsEnv') || project.grailsEnv.equals('dev')) { compile.exclude group: 'org.jruby' }
多亏了 Arjang 的建议,这解决了我的问题(虽然我确定我必须有其他解决方案)
assets ("com.bertramlabs.plugins:sass-asset-pipeline:2.7.2") {
if(project.gradle.startParameter.taskNames.contains('assemble')) {
exclude group: 'org.jruby'
}
}
我正准备使用 gradle assemble
部署我的 Grails 3 网络应用程序以创建 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'
[...]
}
这适用于生产环境,但开发需要依赖项。
有没有快速实现的方法?提前致谢!
我还没有测试过这个。在 build.gradle 中的依赖项中放入
if (!project.hasProperty('grailsEnv') || project.grailsEnv.equals('dev')) { compile.exclude group: 'org.jruby' }
多亏了 Arjang 的建议,这解决了我的问题(虽然我确定我必须有其他解决方案)
assets ("com.bertramlabs.plugins:sass-asset-pipeline:2.7.2") {
if(project.gradle.startParameter.taskNames.contains('assemble')) {
exclude group: 'org.jruby'
}
}