Search code examples
groovygroovy-grape

Failing scripts in groovy using Grab


The following groovy scripts fail using command line

@Grab("org.apache.poi:poi:3.9")
println "test"

Error:

unexpected token: println @ line 2, column 1.
  println "test"
  ^
1 error

Removing the Grab, it works! Anything I missed?

$>groovy -v
Groovy Version: 2.1.7 JVM: 1.7.0_25 Vendor: Oracle Corporation OS: Linux

Solution

  • Annotations can only be applied to certain targets. See SO: Why can't I do a method call after a @Grab declaration in a Groovy script?

    @Grab("org.apache.poi:poi:3.9")
    dummy = null
    println "test"
    

    Alternatively you can use grab as a method call:

    import static groovy.grape.Grape.grab
    grab(group: "org.apache.poi", module: "poi", version: "3.9")
    println "test"
    

    For more information refer to Groovy Language Documentation > Dependency management with Grape.