Top Description Methods
groovy.lang

public @Interface Grab

extends Annotation
Annotations
@Retention:SOURCE
@Target:CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PARAMETER, TYPE
Imports
java.lang.annotation.ElementType, .Retention, .RetentionPolicy, .Target

Used to grab the referenced artifact and its dependencies and make it available on the Classpath.

Some examples:

@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')}"
Further information such as where artifacts are downloaded to, how to add additional resolvers, how to customise artifact resolution etc., can be found on the Grape documentation page: http://groovy-lang.org/grape.html.

Method Summary

Modifier and TypeMethod and Description
public boolean
changing()

Defaults to false but set to true if the dependency artifacts may change without a corresponding revision change.

public String
classifier()

The classifier if in use, e.g.: "jdk14"

public String
conf()

The configuration if in use (normally only used by internal ivy repositories).

public String
ext()

The extension of the artifact (normally safe to leave at default value of "jar" but other values like "zip" are sometimes useful).

public boolean
force()

Defaults to false but set to true to indicate to the underlying Ivy conflict manager that this dependency should be forced to the given revision.

public String
group()

The organisation or group, e.g.: "org.apache.ant".

public boolean
initClass()

By default, when a @Grab annotation is used, a Grape.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.

public String
module()

The module or artifact, e.g.: "ant-junit".

public boolean
transitive()

Defaults to true but set to false if you don't want transitive dependencies also to be downloaded.

public String
type()

The type of the artifact (normally safe to leave at default value of "jar" but other values like "sources" and "javadoc" are sometimes useful).

public String
value()

Allows a more compact convenience form in one of two formats with optional appended attributes.

public String
version()

The revision or version, e.g.: "1.7.1".

Inherited from java.lang.annotation.Annotation:
annotationTypeequalshashCodetoString

Method Detail

changingback to summary
public boolean changing()

Defaults to false but set to true if the dependency artifacts may change without a corresponding revision change. Not normally recommended but may be useful for certain kinds of snapshot artifacts. May reduce the amount of underlying Ivy caching. Proper behavior may be dependent on the resolver in use.

classifierback to summary
public String classifier()

The classifier if in use, e.g.: "jdk14"

confback to summary
public String conf()

The configuration if in use (normally only used by internal ivy repositories). One or more comma separated values with or without square brackets, e.g. for hibernate you might have "default,proxool,oscache" or "[default,dbcp,swarmcache]". This last hibernate example assumes you have set up such configurations in your local Ivy repo and have changed your grape config (using grapeConfig.xml) or the @GrabConfig annotation to point to that repo.

extback to summary
public String ext()

The extension of the artifact (normally safe to leave at default value of "jar" but other values like "zip" are sometimes useful).

forceback to summary
public boolean force()

Defaults to false but set to true to indicate to the underlying Ivy conflict manager that this dependency should be forced to the given revision. Otherwise, depending on the conflict manager in play, a later compatible version might be used instead.

groupback to summary
public String group()

The organisation or group, e.g.: "org.apache.ant". A non-empty value is required unless value() is used.

initClassback to summary
public boolean initClass()

By default, when a @Grab annotation is used, a Grape.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.

moduleback to summary
public String module()

The module or artifact, e.g.: "ant-junit". A non-empty value is required unless value() is used.

transitiveback to summary
public boolean transitive()

Defaults to true but set to false if you don't want transitive dependencies also to be downloaded. You may then need additional @Grab statements for any required dependencies.

typeback to summary
public String type()

The type of the artifact (normally safe to leave at default value of "jar" but other values like "sources" and "javadoc" are sometimes useful). But see also the "classifier" attribute which is also sometimes used for "sources" and "javadoc".

valueback to summary
public String value()

Allows a more compact convenience form in one of two formats with optional appended attributes. Must not be used if group(), module() or version() are used.

You can choose either format but not mix-n-match:
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)
In addition, you can add any valid Ivy attributes at the end of your string value using semi-colon separated name = value pairs, e.g.:
@Grab('junit:junit:*;transitive=false')
@Grab('group=junit;module=junit;version=4.8.2;classifier=javadoc')

versionback to summary
public String version()

The revision or version, e.g.: "1.7.1". A non-empty value is required unless value() is used.