gpt4 book ai didi

syntax - 为什么我不能在 Groovy 脚本中的 @Grab 声明之后进行方法调用?

转载 作者:行者123 更新时间:2023-12-03 14:13:42 24 4
gpt4 key购买 nike

我正在尝试构建一个 DSL 并使用全局 AST 转换来做到这一点。脚本正在编译 groovyc很好,但我希望能够让用户使用 Grab/Grape 来提取 JAR,并让它作为一个 groovy 脚本立即执行。

然后我发现我无法正确执行此操作,因为如果在 @Grab 调用之后没有方法声明或导入语句,则脚本中存在解析错误。

这是一个例子:

@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

尝试不同的东西使它起作用,比如导入语句:
@Grab(group='mysql', module='mysql-connector-java', version='5.1.6')
import groovy.lang.Object
println "Hello World!" ​

或方法声明:
@Grab(group='mysql', module='mysql-connector-java', version='5.1.6')
def hello() {}
println "Hello World!"

这是解析器中的错误吗?
​​​

最佳答案

测试这个

import static groovy.grape.Grape.grab
grab(group: "mysql", module: "mysql-connector-java", version: "5.1.6")
println "Hello World!"

关于syntax - 为什么我不能在 Groovy 脚本中的 @Grab 声明之后进行方法调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5727355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com