groovy.lang
Annotation Type Grapes
- public @interface Grapes 
Sometimes we will need more than one grab per class, but we can only add
 one annotation type per annotatable node.  This class allows for multiple
 grabs to be added.
 
 For example:
 
 
 @Grapes([@Grab(module='m1'), @Grab(module='m2')])
 class AnnotatedClass { ... }
 
 
 You can override an implicit transitive dependency by providing an explicit one.
 E.g. htmlunit 2.6 normally uses xerces 2.9.1 but you can get 2.9.0 as follows:
 
 @Grapes([
     @Grab('net.sourceforge.htmlunit:htmlunit:2.6'),
     @Grab('xerces#xercesImpl;2.9.0')
 ])
 
 Obviously, only do this if you understand the consequences.
 
 You can also remove transitive dependencies altogether (provided you
 know you don't need them) using @GrabExclude.
 For example, here is how we would not grab the logkit and
 avalon-framework transitive dependencies for Apache POI:
 
 @Grapes([
   @Grab("org.apache.poi#poi;3.5-beta6"),
   @GrabExclude("logkit:logkit"),
   @GrabExclude("avalon-framework#avalon-framework")
 ])
 import org.apache.poi.hssf.util.CellReference
 assert new CellReference(0, 0, false, false).formatAsString() == 'A1'
 assert new CellReference(1, 3).formatAsString() == '$D$2'
 
 It is also sometimes also useful to use @GrabConfig to further adjust how dependencies
 are grabbed. See @GrabConfig for further information.
 
| Optional Element Summary | 
|  boolean | initClassThis will be pushed into the child grab annotations if the value is not
 set in the child annotation already.
 | 
 
value
public abstract Grab[] value
- 
 
- 
 
initClass
public abstract boolean initClass
- This will be pushed into the child grab annotations if the value is not
 set in the child annotation already.
 
 This results in an effective change in the default value, which each @Grab
 can still override
 
- 
 
- 
 - 
- Default:
- true