我正在使用grails 2.1。
我需要在构建生产时排除插件。
This帖子提到在插件中添加范围。 我相信这需要编辑单独的插件描述符?
我想定义要在一个位置排除的插件。
我尝试将以下内容添加到config.groovy:
environments {
production {
plugin.excludes='grails-melody'
}
}
当我查看战争时,它仍然包含WEB-INF / plugins下的旋律文件夹。
我应该补充一点,大多数应用程序插件都在application.properties中指定,如下所示:
plugins.build-test-data=2.0.3
plugins.fixtures=1.1
plugins.geoip=0.2
plugins.grails-melody=1.12
etc...
如何排除生产版本的特定插件?
由于
答案 0 :(得分:8)
在buildConfig.groovy中,您可以定义一个不导出的插件:
plugins {
compile(':theplugin:theversion') {
export = false
}
}
答案 1 :(得分:7)
让我在戒指中回答。与@ hitty5提议的类似,但有一些更改(以及错误修复)。
对于我们来说,在开发环境中工作时排除一些页面速度插件非常重要,因为我们希望完整地查看资源。另一方面,我们不想复制块之间应该在每台机器上的插件(就像在@ hitty5的解决方案中一样)。
plugins {
runtime ":hibernate:$grailsVersion"
// ... some more plugins that I want in every environment
if (Environment.getCurrent() in [Environment.PRODUCTION, Environment.TEST]) {
// plugins, that I only want on the test and production servers
println("BuildConfig: including page speed optimization plugins.")
runtime ":zipped-resources:1.0"
compile ":cache-headers:1.1.5"
runtime ":cached-resources:1.0"
runtime ":yui-minify-resources:0.1.5"
}
// ... and more plugins, if you like
build ":tomcat:$grailsVersion"
}
希望这会有所帮助。
一切顺利, 磁通量子
答案 2 :(得分:3)
首先,我建议使用构建配置文件(BuildConfig.groovy)来解决您的插件依赖项。在此文件中,您可以定义env特定块,如:
if (environment == Environment.PRODUCTION){
plugins {
compile ":<plugin>:<version>"
}
}
else {
plugins {
compile ":<plugin>:<version>"
}
}
答案 3 :(得分:3)
在BuildConfig.groovy中,您可以定义一个不在特定环境中导出的插件:
plugins {
compile(':theplugin:theversion') {
if (Environment.getCurrent() == Environment.PRODUCTION) {
export = false
}
}
}
请记得添加
import grails.util.Environment
在BuildConfig.groovy的开头