我不知道grails在启动时会加载一组默认插件。使用run-app在开发模式下运行时,这并不明显。但是当我构建一个战争并将其放入应用服务器时,内存使用率变得非常高,我看到以下几段日志:
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应用程序)
谢谢!
答案 0 :(得分:1)
因此,在通过另一种沟通媒介跟进后,我已确认您要删除:
让我们从dataSource开始。根据{{3}}和this thread,可以简单地删除DataSource.groovy(或删除dataSource {}的内容)以防止插件触发,但Grails项目负责人{{3}即使您没有Web服务之外的持久层,您仍然需要一个内存数据源,以使应用程序正常运行。或者至少通过测试。
据我所知,删除不需要的插件的唯一方法是使用grails.war.resources回调(即,没有办法使用Grail的内置依赖管理功能来处理它)。请关注this follow-up JIRA以获取如何使用回调删除任意jar的示例。
答案 1 :(得分:0)
这些插件应该在您的application.properties或BuildConfig.groovy中,具体取决于您设置插件的方式。其中一些插件可能与您安装的插件有关。
看起来您拥有资源插件以及一些插件来帮助处理资源。 (Zipped,cached,lesscss,cacheHeaders ......)你可能想要所有这些插件。
你也有redis你看到你没有在生产中使用的插件吗?如果你是这样你总是可以在插件闭包的BuildConfig中有条件地加载它们,我们会做以下事情:
if (Environment.current in [Environment.DEVELOPMENT, Environment.TEST]) {
compile ":build-test-data:2.0.2"
}
你可能需要那些你看到的插件,因为它们可能被内置到grails中。 grails的基础是一个相当大的内存占用。您可以有条件地添加所需的插件,但不能丢弃所有插件。