Groovy意外令牌:@@ line

时间:2014-04-03 05:27:52

标签: groovy

当我运行groovy时出现以下错误:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
C:\Users\kbekur\MuleStudio\workspace\GroovyTest\src\com\test\SQLGroovy.groovy: 3: unexpected token: @ @ line 3, column 2.
    @Grab(group='org.hsqldb', module='hsqldb', version='2.3.2')
    ^

1 error

我的代码是:

@Grapes([
     @GrabConfig(systemClassLoader = true)
     @Grab(group='org.hsqldb', module='hsqldb', version='2.3.2')
])
import groovy.sql.Sql
def db = [url:'jdbc:hsqldb:hsql://localhost/testdb', user:'sa', password:'', driver:'org.hsqldb.jdbc.JDBCDriver']
def sql = Sql.newInstance(db.url, db.user, db.password, db.driver)
println 'Some GR8 projects:'
sql.eachRow('select * from Persons') { row ->
    println "${row.lastname.padRight(10)} ($row.personid)"
}

经过分析,我发现了

You can't annotate a statement. 
You should put the grab annotation on an import, for instance.

我不清楚以上声明,我需要做些什么更改来修复编译问题并加载jar。

我指的是来自jars, system class loader

的代码

1 个答案:

答案 0 :(得分:2)

@Grapes列表中的两个项目之间需要逗号,即:

@Grapes([
    @GrabConfig(systemClassLoader = true),
    @Grab(group='org.hsqldb', module='hsqldb', version='2.3.2')
])

您也可以删除@Grapes部分,只提供:

@GrabConfig(systemClassLoader = true)
@Grab(group='org.hsqldb', module='hsqldb', version='2.3.2')

(此处不需要逗号,因为它们不再在列表中)