El otro día Ariel nos comentaba la potencia del uso de los @Grapes en Groovy, los cuales nos permiten cargar dinámicamente una librería sin necesidad de que esta esté cargada en el classpath.
Para cargar un @Grape en Groovy lo podemos hacer de la siguiente forma:
@Grapes(@Grab(group='com.itextpdf', module='itextpdf', version='5.1.2'))
A partir de este momento podemos utilizar la librería iText sin ningún problema, ya que la hemos cargado dinámicamente.
Pero Groovy va un paso más allá y nos permite cargar la librería directamente desde un repositorio maven. Para ello nos proporciona la anotación GrabResolver.
La anotación GrabResolver simplemente indica un nombre del repositorio al que queremos conectarnos y la raíz del repositorio o root. En el caso de la librería iText el repositorio maven está en ‘http://maven.itextpdf.com/’, por lo que la conexión del GrabResolver quedará de la siguiente manera:
@GrabResolver(name='itextpdf', root='http://maven.itextpdf.com/')
Todo nuestro código que conexión con Grapes en Groovy será el siguiente:
@GrabResolver(name='itextpdf', root='http://maven.itextpdf.com/')
@Grapes(@Grab(group='com.itextpdf', module='itextpdf', version='5.1.2'))
Para utilizar alguna librería podéis buscar las dependencias en http://mvnrepository.com/
Como podéis ver el uso de GrabResolver nos ayuda mucho en el uso de librerías de terceros con Groovy.