是否可以从生产环境中排除 grails 插件?

Posted

技术标签:

【中文标题】是否可以从生产环境中排除 grails 插件?【英文标题】:Is it possible to exclude grails plugin from production environment? 【发布时间】:2010-12-19 12:03:12 【问题描述】:

我想在开发环境中使用某些插件,但想将此插件从生产环境和生成的战争中排除。最简单的方法是什么?

【问题讨论】:

你能给我解决 grails 2.4.3 的问题吗? 【参考方案1】:

您可以在 config.groovy 中使用 excludes 属性:

production 
         grails.plugin.excludes='console,classDiagram'

但是对于它是否会将其从“运行应用程序”和“战争”中排除似乎有些混乱。我今天会尝试检查并验证

【讨论】:

【参考方案2】:

如果你想在某些环境中排除插件,你需要这样做:

runtime (':plugin:version') 
    if (Environment.current == Environment.PRODUCTION) 
        export = false
    

【讨论】:

【参考方案3】:

我不相信有办法在不编辑插件本身的情况下实现这一点(正如 Jean 指出的那样)

如果您可以控制插件,那么这将起作用,但如果您只是想在“使用”它时对其进行配置,那么您将需要复制并运行带有您修改的插件的补丁版本。您可以通过在 grails-app/conf/BuildConfig.groovy 文件中使用该插件的自定义位置来自定义它。

【讨论】:

【参考方案4】:

是的,使用插件范围。来自http://grails.org/1.1+Release+Notes:

现在可以使用环境或预定义的构建范围来确定插件的范围:

def environments = ['dev', 'test']
def scopes = [excludes:'war']

插件只会在这些环境中加载,不会打包到 WAR 文件中。这允许“仅开发”插件不被打包以供生产使用。

【讨论】:

如何配置这个?我正在尝试编译 ":angular-annotate-asset-pipeline:2.0.2" def environment = ['dev', 'test'] 但出现错误跨度>

以上是关于是否可以从生产环境中排除 grails 插件?的主要内容,如果未能解决你的问题,请参考以下文章

生产环境中的 Grails 服务返回 Null

从 Grails 中的 Cobertura 报告中排除插件

Grails:有条件地加载 Spring Security LDAP 插件

如何从 grails 默认 gsp 编码中排除插件?

如何在实时/生产环境中监控和维护我的 Grails 应用程序?

仅在生产环境中编码的 Grails GSP 表达式