Grails 检测是不是安装了插件

Posted

技术标签:

【中文标题】Grails 检测是不是安装了插件【英文标题】:Grails Detect if a Plugin is InstalledGrails 检测是否安装了插件 【发布时间】:2011-02-25 20:10:09 【问题描述】:

Grails 中有没有办法检测是否安装了插件。例如,我需要知道是否安装了“Acegi”插件。如果是,那么我可以运行不同的代码。如果没有安装插件(这是一个可行的选择),那么我可以运行不同的代码。

提前致谢。

【问题讨论】:

【参考方案1】:

您可以为此使用插件管理器:

import org.codehaus.groovy.grails.plugins.PluginManagerHolder

if (PluginManagerHolder.pluginManager.hasGrailsPlugin('acegi')) 
   ...

【讨论】:

【参考方案2】:

Grails 2.4+ 更新

请注意,特定的持有者类(例如 PluginManagerHolder)已在多个 Grails 版本中被弃用,并在 Grails 2.4 中被删除。它们已被单个 grails.util.Holders 类所取代,通过单个访问点提供对所有各种应用程序范围对象的访问。

import grails.util.Holders

if (Holders.pluginManager.hasGrailsPlugin('acegi')) 
   ...

【讨论】:

【参考方案3】:

您可以使用<plugin:isAvailable> 和<plugin:isNotAvailable> 标签。

使用 OP 的 acegi 插件的示例:

<plugin:isAvailable name="acegi">
    You have acegi installed!
</plugin:isAvailable>

【讨论】:

以上是关于Grails 检测是不是安装了插件的主要内容,如果未能解决你的问题,请参考以下文章

什么是 Grails 插件?安装插件是什么意思?

grails 3插件安装位置

在 grails 插件安装期间无法解决依赖关系

Grails 无法安装插件

如何从源代码安装 Grails 插件?

插件安装后 Grails Apache 中断?