grails - 从插件中获取自定义 grails 插件版本

标签 grails plugins

我有一个我编写的 Grails 插件,它在我们的持续集成环境中使用 set-version 设置了它的版本。在构建时,我想以编程方式从“eventCompileEnd”事件 Hook 中输出版本。因此,对于我的 Grails 应用程序,我只能获取“app.version”元数据,但插件版本是在插件根目录的 GrailsPlugin.groovy 文件中设置的。有什么方法可以访问该值吗?这是我指的版本信息:

class MyUtilityGrailsPlugin {
   // the plugin version
   def version = "4.6.8"

   // the version or versions of Grails the plugin is designed for
   def grailsVersion = "2.1 > *"

   ...etc.

最佳答案

您可以在下面使用eventCompileEnd _Events.groovy 中的事件从 GantBinding 获取应用程序中使用的所有插件的名称和版本默认情况下可用于后编译事件。您可以根据 name 过滤插件信息:

//scripts/_Events.groovy
eventCompileEnd = {msg->
    msg.supportedPluginInfos.each{println "${it.name} - ${it.version}"}
}

如果您想使用 applicationContext 从其他任何地方(例如:BootStrap)访问插件信息将是最简单的方法。像下面这样的东西会很有用:
//Bootstrap.groovy
def grailsApplication

def init = { servletContext ->
    grailsApplication.mainContext.getBean('pluginManager')
                                 .allPlugins.each{plugin->
        println "Plugin Info ${plugin.name} - ${plugin.version}"
    }
}

在您的情况下,appCtx 在编译后事件中将不可用,因此您必须依赖 GantBinding .

关于grails - 从插件中获取自定义 grails 插件版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19755404/

相关文章:

Grails:两个域对象之间的多重关系

tomcat - Grails:Tomcat中的WAR文件部署异常

c++ - 模板类工厂

python - sublime.py 在哪里?

grails - 如果以String参数开头,则Grails失败

grails - 如何使用createcriteria获得多个列

unit-testing - JSON渲染对于ControllerUnitTestCase中的域对象失败

database - 如何设置ckeditor grails插件以使用数据库上传文件?

email - 使用Groovy在邮件中发送iCalendar邀请

javascript - jQuery - 无法同时使用导入的文件和自己的函数