语法 – 为什么在Groovy脚本中的@Grab声明后无法执行方法调用?
发布时间:2020-12-14 16:31:31 所属栏目:大数据 来源:网络整理
导读:我正在尝试构建DSL并使用全局AST变换来实现.该脚本正在使用groovyc进行编译,但是我希望能够让用户使用Grab / Grape来拉取JAR,并将其作为groovy脚本立即执行. 然后,我发现我无法正确执行,因为脚本中有一个解析错误,如果在@Grab调用后没有方法声明或import语句
我正在尝试构建DSL并使用全局AST变换来实现.该脚本正在使用groovyc进行编译,但是我希望能够让用户使用Grab / Grape来拉取JAR,并将其作为groovy脚本立即执行.
然后,我发现我无法正确执行,因为脚本中有一个解析错误,如果在@Grab调用后没有方法声明或import语句. 以下是一个例子: @Grab(group='mysql',module='mysql-connector-java',version='5.1.6') println "Hello World!" 它看起来应该有效,但它抱怨(这里是GroovyConsole Script的输出): startup failed: Script1.groovy: 4: unexpected token: println @ line 4,column 1. println "hello" ^ 1 error 尝试不同的东西使它工作,像一个import语句: @Grab(group='mysql',version='5.1.6') import groovy.lang.Object println "Hello World!" ? 或方法解密: @Grab(group='mysql',version='5.1.6') def hello() {} println "Hello World!" 这是解析器中的错误吗? 解决方法
抓斗只能作为
annotation to certain targets使用
@Target(value={CONSTRUCTOR,FIELD,LOCAL_VARIABLE,METHOD,PARAMETER,TYPE}) 所以你需要注释这些东西之一(就像你看到的) 不幸的是,Java(并因此Groovy)没有办法出现在代码中间的注释. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |