2012-12-10 128 views
3

我不知道在启动时,grails会加载一组默认的插件。这在使用run-app的开发模式下运行时并不明显。但是,当我建立了一个战争,把它变成一个应用服务器,内存使用率去疯狂高,我看到日志下面的代码片段:如何在启动时禁用grails加载默认加载的某些插件?

31767 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [i18n] with version [2.1.0] loaded successfully 31770 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [logging] with version [2.1.0] loaded successfully 31771 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [core] with version [2.1.0] loaded successfully 32039 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [groovyPages] with version [2.1.0] loaded successfully 32053 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [urlMappings] with version [2.1.0] loaded successfully 32060 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [controllers] with version [2.1.0] loaded successfully 32076 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [domainClass] with version [2.1.0] loaded successfully 32079 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [dataSource] with version [2.1.0] loaded successfully 32547 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [cacheHeaders] with version [1.1.5] loaded successfully 32548 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [redis] with version [1.3.2] loaded successfully 32549 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [resources] with version [1.1.6] loaded successfully 32549 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [services] with version [2.1.0] loaded successfully 32551 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [servlets] with version [2.1.0] loaded successfully 32561 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [mimeTypes] with version [2.1.0] loaded successfully 32571 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [codecs] with version [2.1.0] loaded successfully 32579 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [filters] with version [2.1.0] loaded successfully 32579 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [validation] with version [2.1.0] loaded successfully 32583 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [scaffolding] with version [2.1.0] loaded successfully 32598 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [converters] with version [2.1.0] loaded successfully 32664 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [lesscssResources] with version [1.3.0] loaded successfully 32676 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [cachedResources] with version [1.0] loaded successfully 32684 [main] INFO org.codehaus.groovy.grails.plugins.DefaultGrailsPluginManager - Grails plug-in [zippedResources] with version [1.0] loaded successfully

如何禁用某些插件的加载,因为我不不需要他们吗?说,脚手架插件和domainClass插件(这是一个没有数据库连接的HTML 5应用程序)

谢谢!

回答

1

因此,在交互的媒介与你跟进后,我已确认您想删除:

  1. domainClass
  2. 数据源
  3. 验证
  4. 脚手架

让我们从dataSource开始。根据this threadthis follow-up JIRA,可以简单地删除DataSource.groovy(或删除dataSource {}的内容)以防止插件被触发,但Grails项目的主角,即使您没有持久层在Web服务之外,您仍然需要内存数据源才能使应用程序正常运行。或者至少通过测试。

据我所知,删除不需要的插件的唯一方法是使用grails.war.resources回调(即,没有办法使用Grail的内置依赖管理功能来处理它)。请按照this link获取如何使用回调来删除任意罐子的示例。

+0

是的。这些插件是grails内部的,并且将它们从战争中移除的唯一方法是添加闭包grails.war.resources。在BuildConfig.groovy中手动删除文件 – DaHoopster

0

这些插件应该位于您的application.properties或您的BuildConfig.groovy中,具体取决于您如何设置插件。其中一些插件可能是您安装的插件的依赖项。

看起来你有资源插件以及一些插件来帮助一般资源。 (压缩,缓存,lesscss,cacheHeaders ...)您可能需要所有这些插件。

你也有redis你看到你没有在生产中使用的插件吗?如果你是,你总是可以有条件地加载它们在BuildConfig在侧插件关闭,我们做到以下几点:

if (Environment.current in [Environment.DEVELOPMENT, Environment.TEST]) { 
    compile ":build-test-data:2.0.2" 
} 

你可能需要你所看到的,因为他们可以内置到Grails插件。 grails的基础体面大小的内存足迹。你可以有条件地添加你需要的插件,但你不能折腾一切。

相关问题