Grails中是否有办法检测是否安装了插件。例如,我需要知道是否安装了“Acegi”插件。如果是,那么我可以运行不同的代码。如果未安装插件(这是一个可行的选项),那么我可以运行不同的代码。
先谢谢。
答案 0 :(得分:8)
您可以使用插件管理器:
import org.codehaus.groovy.grails.plugins.PluginManagerHolder
if (PluginManagerHolder.pluginManager.hasGrailsPlugin('acegi')) {
...
}
答案 1 :(得分:3)
您可以使用<plugin:isAvailable>和<plugin:isNotAvailable>标记。
使用OP的acegi
插件的示例:
<plugin:isAvailable name="acegi">
You have acegi installed!
</plugin:isAvailable>
答案 2 :(得分:3)
请注意,特定的持有者类(例如PluginManagerHolder
)已全部弃用Grails的多个版本,并在Grails 2.4中删除。它们已被单个grails.util.Holders
类所取代,可通过单个访问点访问所有各种应用程序范围的对象。
import grails.util.Holders
if (Holders.pluginManager.hasGrailsPlugin('acegi')) {
...
}