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

标签 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进口声明。 _Events.groovy不是一个类,所以 import 语句不起作用。如果无法导入自定义类,如何在脚本中使用它?以及如何执行日志记录而不是使用 println ?

更新

根据 this 手动加载类和 this似乎可以解决问题,感谢 Aaron's下面回答:
 eventCreateWarStart = { name, stageDir ->

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

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

问题
  • Grails 脚本可用的所有隐式对象是什么?
  • 最佳答案

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

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

    关于grails - 导入用于 grails 脚本 _Events.groovy 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24469911/

    相关文章:

    grails - 向 chalice 目标添加额外的配置属性

    forms - Grails:未选中时,单选按钮不会填充命令obj

    chalice GORM : how to access id of super class

    grails - Grails框架:groovy.lang.MissingMethodException:方法无签名

    authentication - 如何使 Grails Spring Security 2.0 中的登录/页面成为初始屏幕?

    grails - 在集成测试中获取服务器 URL?

    groovy - 如何使 eclipse junit stacktrace 使用非比例字体?

    gradle - 获取数组中所有文件/文件夹的名称

    tomcat - 如何在 Tomcat 7 0 39 上运行的 Grails 2.2 中设置 MaxPermSize?

    grails - 无法使用 Spring Security 在 grails 2.1.1 中创建用户对象