@Retention(value=SOURCE) @Target(value={CONSTRUCTOR,FIELD,LOCAL_VARIABLE,METHOD,PARAMETER,TYPE}) public @interface Grab
 @Grab(group='commons-lang', module='commons-lang', version='2.4')
 import org.apache.commons.lang.WordUtils
 println "Hello ${WordUtils.capitalize('world')}"
 
 Or using the compact Gradle-inspired syntax:
 
 @Grab('commons-lang:commons-lang:2.4')
 import org.apache.commons.lang.WordUtils
 println "Hello ${WordUtils.capitalize('world')}"
 
 or the same thing again using the Ivy-inspired syntax variant:
 
 @Grab('commons-lang#commons-lang;2.4')
 import org.apache.commons.lang.WordUtils
 println "Hello ${WordUtils.capitalize('world')}"
 | Modifier and Type | Required Element and Description | 
|---|---|
String | 
module
The module or artifact, e.g.: "ant-junit" 
 | 
String | 
version
The revision or version, e.g.: "1.7.1" 
 | 
| Modifier and Type | Optional Element and Description | 
|---|---|
String | 
classifier
The classifier if in use, e.g.: "jdk14" 
 | 
String | 
conf
The configuration if in use (normally only used by internal ivy repositories). 
 | 
String | 
ext
The extension of the artifact (normally safe to leave at default value of "jar") 
 | 
String | 
group
The organisation or group, e.g.: "org.apache.ant" 
 | 
boolean | 
initClass
By default, when a  
@Grab annotation is used, the grab() call is added
 to the static initializers of the class the annotatable node appears in. | 
boolean | 
transitive
Set to false if you don't want transitive dependencies also to be downloaded. 
 | 
String | 
value
Allows a more compact convenience format in one of two formats. 
 | 
public abstract String module
public abstract String version
public abstract String group
public abstract String classifier
public abstract boolean transitive
@Grab statements for any required dependencies.public abstract String conf
public abstract String ext
public abstract String value
group:module:version:classifier@ext (where only group and module are required)group#module;version[confs] (where only group and module are required and confs, if used, is one or more comma separated configuration names)public abstract boolean initClass
@Grab annotation is used, the grab() call is added
 to the static initializers of the class the annotatable node appears in.
 If you wish to disable this, add initClass=false to the annotation.