@Retention(SOURCE)
@Target({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')}"
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.codehaus.org/Grape.Modifier and Type | Required Element | Description |
---|---|---|
java.lang.String |
module |
The module or artifact, e.g.: "ant-junit"
|
java.lang.String |
version |
The revision or version, e.g.: "1.7.1"
|
Modifier and Type | Optional Element | Description |
---|---|---|
boolean |
changing |
Defaults to
false but set to true if the dependency artifacts may change without a corresponding
revision change. |
java.lang.String |
classifier |
The classifier if in use, e.g.: "jdk14"
|
java.lang.String |
conf |
The configuration if in use (normally only used by internal ivy repositories).
|
java.lang.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 to
false but set to true to indicate to the underlying Ivy conflict manager that this
dependency should be forced to the given revision. |
java.lang.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 |
Defaults to
true but set to false if you don't want transitive dependencies also to be downloaded. |
java.lang.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).
|
java.lang.String |
value |
Allows a more compact convenience form in one of two formats with optional appended attributes.
|
boolean transitive
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.boolean force
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.boolean changing
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.java.lang.String conf
@GrabConfig
annotation
to point to that repo.java.lang.String ext
java.lang.String type
java.lang.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)@Grab('junit:junit:*;transitive=false')
@Grab('group=junit;module=junit;version=4.8.2;classifier=javadoc')