Package groovy.lang
Annotation Type Grab
-
@Retention(SOURCE) @Target({CONSTRUCTOR,FIELD,LOCAL_VARIABLE,METHOD,PARAMETER,TYPE}) public @interface Grab
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')}"@Grab
('commons-lang:commons-lang:2.4') import org.apache.commons.lang.WordUtils println "Hello ${WordUtils.capitalize('world')}"@Grab
('commons-lang#commons-lang;2.4') import org.apache.commons.lang.WordUtils println "Hello ${WordUtils.capitalize('world')}"
-
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description boolean
changing
Defaults tofalse
but set totrue
if the dependency artifacts may change without a corresponding revision change.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" but other values like "zip" are sometimes useful).boolean
force
Defaults tofalse
but set totrue
to indicate to the underlying Ivy conflict manager that this dependency should be forced to the given revision.String
group
The organisation or group, e.g.: "org.apache.ant".boolean
initClass
By default, when a@Grab
annotation is used, aGrape.grab()
call is added to the static initializers of the class the annotatable node appears in.String
module
The module or artifact, e.g.: "ant-junit".boolean
transitive
Defaults totrue
but set tofalse
if you don't want transitive dependencies also to be downloaded.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).String
value
Allows a more compact convenience form in one of two formats with optional appended attributes.String
version
The revision or version, e.g.: "1.7.1".
-
-
-
Element Detail
-
group
String group
The organisation or group, e.g.: "org.apache.ant". A non-empty value is required unless value() is used.- Default:
- ""
-
-
-
module
String module
The module or artifact, e.g.: "ant-junit". A non-empty value is required unless value() is used.- Default:
- ""
-
-
-
version
String version
The revision or version, e.g.: "1.7.1". A non-empty value is required unless value() is used.- Default:
- ""
-
-
-
classifier
String classifier
The classifier if in use, e.g.: "jdk14"- Default:
- ""
-
-
-
changing
boolean changing
Defaults tofalse
but set totrue
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.- Default:
- false
-
-
-
conf
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.- Default:
- ""
-
-
-
ext
String ext
The extension of the artifact (normally safe to leave at default value of "jar" but other values like "zip" are sometimes useful).- Default:
- ""
-
-
-
type
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".- Default:
- ""
-
-
-
value
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')
- Default:
- ""
-
-