Mit der Annotation Grapes kannst du innerhalb deines Apache Groovy Scriptes ein recht einfaches aber mächtiges Dependencymanagement verwalten bw. einrichten.
Wenn wir normalerweise ein Projekt mit Abhängigkeiten (Dependencies) aufsetzen so benötigen wir ein Maven, Gradle, Ivy oder ähnliches welches diese für uns im Projekt herunterlädt und bereithält. (Oder du ladest die *.jar Datei herunter und legst diese in deinem Projekt ab.)
Beide Wege sind natürlich auch in Groovy möglich, jedoch kann du dir dieses mit Grapes deutlich vereinfachen.
Du benötigst vor deinem Aufruf lediglich die Annotation @Grapes mit den Daten zur Dependency welche du zbsp. aus dem Maven Repository ablesen kannst.
Ein Beispiel mit Apache-Commons-Lang3
Die wohl bekannteste Bibliothek ist die apache-commons-lang3, diese bietet eine Vielzahl an nützlichen Funktionen, welche einem das Programmieren deutlich erleichtert.
Im Maven Repository dieser Bibliothek finden wir Einträge zu den gängigen Dependencymanagement Systemen und ebenso auch für Grape.
Hier müssen wir uns nurnoch den Text aus dem Reiter “Grape” kopieren und an die erste Zeile unserer Klasse einfügen.
// https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 @Grapes( @Grab(group='org.apache.commons', module='commons-lang3', version='3.12.0') ) import org.apache.commons.lang3.text.WordUtils String name = "Stefan Draeger" println new WordUtils().initials(name)
Ausgabe in der GroovyConsole:
groovy> // https://mvnrepository.com/artifact/org.apache.commons/commons-lang3
groovy> @Grapes(
groovy> @Grab(group='org.apache.commons', module='commons-lang3', version='3.12.0')
groovy> )
groovy> import org.apache.commons.lang3.text.WordUtils
groovy> String name = "Stefan Draeger"
groovy> println new WordUtils().initials(name)
SD
In diesem Fall wurden die Anfangsbuchstaben der Wörter in dem Feld “name” ausgegeben.