我正在尝试熟悉在 scripts/_Events.groovy 文件中定义的 Grails 事件。
问题是我的事件 Hook 被忽略了。
该文件肯定会被编译,因为如果有语法错误,Grails 会提示它们。
但没有别的了。我没有注意到“grails war”和“grails run-app”等命令的执行有任何区别。
Grails 版本是 2.4.4
includeTargets << grailsScript('_GrailsPackage')
includeTargets << grailsScript('_GrailsEvents')
eventCompileStart = { kind ->
println "Triggered ${kind}"
throw new IllegalArgumentException()
}
eventPackagingEnd = {
println "PackaginEnd"
throw new IllegalArgumentException()
}
eventPackagingStart = {
println "PackaginStart"
throw new IllegalArgumentException()
}
eventCreateWarStart = {warName, stagingDir ->
println "eventCreateWarStart [${stagingDir}]"
throw new IllegalArgumentException()
}
eventCreateWarEnd = {warName, stagingDir ->
println " eventCreateWarEnd ${stagingDir}"
throw new IllegalArgumentException()
}
最佳答案
一段时间以来,我发现 _Events.groovy 文件应该在项目结构中的上一级。所以脚本文件夹的正确位置是根项目文件夹而不是 grails-app 一个。
关于grails - 事件处理程序不会被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27214171/