Grails 排除特定环境的插件

Grails 排除特定环境的插件,grails,grails-plugin,Grails,Grails Plugin,我正在使用Grails2.1 我需要排除插件时,生产建设 这篇文章提到将作用域添加到插件中。 我相信这需要编辑indivudual插件描述符 我想在一个位置定义要排除的插件 我已尝试将以下内容添加到config.groovy中: environments { production { plugin.excludes='grails-melody' } } 当我检查war时,它仍然包含WEB-INF/plugins下的melody文件夹 我应该补充的是,大多数应用程序插件

我正在使用Grails2.1

我需要排除插件时,生产建设

这篇文章提到将作用域添加到插件中。 我相信这需要编辑indivudual插件描述符

我想在一个位置定义要排除的插件

我已尝试将以下内容添加到config.groovy中:

environments {
    production {
    plugin.excludes='grails-melody'
    }
}
当我检查war时,它仍然包含WEB-INF/plugins下的melody文件夹

我应该补充的是,大多数应用程序插件都是在application.properties中指定的,如下所示:

plugins.build-test-data=2.0.3
plugins.fixtures=1.1
plugins.geoip=0.2
plugins.grails-melody=1.12
etc...
如何排除生产构建的特定插件


谢谢

在buildConfig.groovy中,您可以定义一个不导出的插件:

plugins {
  compile(':theplugin:theversion') {
    export = false
  }
}

首先,我建议使用构建配置文件(BuildConfig.groovy)来解决插件依赖关系。在此文件中,可以定义特定于环境的块,如:

if (environment == Environment.PRODUCTION){
    plugins {            
            compile ":<plugin>:<version>"
        }
    }
else {
        plugins {            
            compile ":<plugin>:<version>"
        }
}
if(环境==environment.PRODUCTION){
插件{
编译“:”
}
}
否则{
插件{
编译“:”
}
}

让我把答案扔到拳击台上。与@hitty5的建议类似,但有一些改动(和bug修复)

对于我们来说,在开发环境中工作时,排除一些页面速度插件是很重要的,因为我们希望看到完整的资源。另一方面,我们不想在块之间复制每台机器上的插件(就像在@hitty5的解决方案中那样)

希望这有帮助

祝你一切顺利,
fluxon

在BuildConfig.groovy中,您可以定义一个插件,在特定环境中不导出:

    plugins {
      compile(':theplugin:theversion') {
         if (Environment.getCurrent() == Environment.PRODUCTION) {
            export = false
         }
      }
    }
记得加上

import grails.util.Environment

在BuildConfig.groovy的一开始,我对它投了更高的票,因为我认为这表明了研究的努力:)塞尔吉奥,你既是一名喜剧演员,也是一名开发者!;)谢谢:)@ThomasBuckley解决方案在grails 2.4.3版本中对我不起作用,我想在开发模式中排除一个插件。你能告诉我一些想法吗?@AnkitGupta我已经18个月没有在grails上工作了,这对我来说是一个遥远的记忆!我建议发布一个新问题,包括代码、环境设置和问题。可能会链接回此链接,以显示您已进行了一些搜索;)嘿,谢谢你添加了你的解决方案。像这样,它对我不起作用,因为
环境
没有定义。但是,如果我用
Environment.getCurrent()
替换它,它工作得很好。我检查了WAR文件,Java Melody插件得到了我想要的捆绑。然而,在生产战(没有jmelody)文件中,我仍然看到一个名为grails.plugin.melody.GrailsMelodyUtil的类(没有其他与jmelody相关的内容)解决方案在grails 2.4.3版本中对我不起作用,我想在开发模式中排除一个插件。你能给出一些想法吗?需要更加强调
导入grails.util.Environment
。这个小错误太容易被忽略了。如果在插件依赖项列表中使用它是否有效。例如,我有一个插件,它使用插件B作为开发模式。如果依赖于我的插件A的应用程序只能在插件A BuildConfig中指定的开发模式下使用插件B?
import grails.util.Environment