导入用于grails脚本的类_Events.groovy

时间:2014-06-28 18:50:24

标签: grails groovy grails-2.0

在Grails 2.3.7中我使用_Events.groovy挂钩进入WAR包装进行一些特殊处理:

_Events.groovy

    import demo.utils.XmlUtil

    eventCreateWarStart = { name, stageDir ->
       XmlUtil.doSomething()
       ...
       log.debug('done!')
    }

构建WAR时,Grails抱怨XmlUtil import语句。 _Events.groovy不是类,因此import语句不起作用。如果我无法导入脚本,如何在脚本中使用自定义类?我如何执行日志记录而不是使用println

更新

根据thisthis手动加载类似乎可以解决问题,并且通过以下Aaron's答案也可以登录工作:

 eventCreateWarStart = { name, stageDir ->

   def xmlUtil = loadRequiredClass('demo.utils.XmlUtil')
   xmlUtil.doSomething()
   ...
   grailsConsole.log('done!')
 }

 loadRequiredClass = {classname ->
   classLoader.loadClass(classname)
 }

问题

  • Grails脚本可用的所有隐式对象是什么?

1 个答案:

答案 0 :(得分:3)

这是一种痛苦,但是当你想到它时它确实有意义。 _Events.groovy是构建过程的一部分,它还负责编译您在_Events.groovy中尝试使用的类。绝对是一个catch-22场景,但我不知道如果不将_Events.groovy拆分成在构建过程的不同阶段编译和加载的单独文件,如何做得更好。

您可以使用grailsConsole.log("hi")grailsConsole.updateStatus("hi")将输出记录到控制台。

相关问题