Error compiling a Groovy project using @Grab annotation

gradle, groovy, groovy-grape

Solution

`@Grab` is meant to be used for standalone scripts that aren't precompiled, and you wouldn't normally use it together with compiled code. If you do, you may have to add Ivy to `groovyClasspath`. Something like:

repositories {
    mavenCentral()
}

configurations {
    ivy
}

dependencies {
    ivy "org.apache.ivy:ivy:2.3.0"
    compile "org.codehaus.groovy:groovy-all:2.1.5"
}  

tasks.withType(GroovyCompile) {
    groovyClasspath += configurations.ivy
}

That said, a better approach is to manage dependencies with Gradle.

Problem

I'm compiling a Groovy project with Gradle, but I've noticed that when I use the @Grab annotation in my code, I get the following error: ``` $ gradle compile :buildInfo :compileJava UP-TO-DATE :compileGroovy FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileGroovy'. > org/apache/ivy/core/report/ResolveReport ``` (full stack trace here http://pastebin.com/0ty4jNct) I've found out that the only way to get it working is to add the 'groovy' and 'ivy' module to the groovy classpath, but I would like to avoid this, since the groovy classpath is deprecated. Is this a Gradle bug? or there's a better way to manage the @Grab dependency?

Original source