我有一个我编写的 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/