Ya hemos tratado en el Blog el tema de crear Addons para Spring Roo.
En la versión actual de Spring Roo, la 1.1, han cambiado sustancialmente la forma de hacer Addons, fundamentalmente simplificando la creación.
Este addon necesita para funcionar unas dependencias, veremos cómo hacer que el addon incluya esas dependencias (para que no sufráis, a mi me costó unas horillas hacerlo funcionar ;))
1) Lanzamos consola Roo >roo
2) Usamos la plantilla de Addon Simple para crear uno:
>addon create simple –topLevelPackage es.luismi.roo.ejemplos.addons.main –projectName luismi-addon-dependencias
3) Añado las dependencias que tengo, en mi caso:
| <dependency>
<groupId>org.eclipse.emf</groupId> <artifactId>org.eclipse.emf.common</artifactId> <version>2.6.0.v20100614-1136</version> </dependency> <dependency> <groupId>org.eclipse.emf</groupId> <artifactId>org.eclipse.emf.ecore</artifactId> <version>2.6.0.v20100614-1136</version> </dependency> <dependency> <groupId>org.eclipse.emf</groupId> <artifactId>org.eclipse.emf.ecore.xmi</artifactId> <version>2.5.0.v20100521-1846</version> </dependency> |
4) Creo proyecto Eclipse (para que descargue y añada dependencias)
>perform eclipse
(Desarrollamos el addon, en otro post entraremos en detalle sobre los temas importantes para desarrollar un addon)
5) Construyo desde consola ROO el Addon:
>perform assembly
6) Instalo el addon desde la consola:
>osgi install –url file:///DESARROLLO/PruebasConcepto/addon-simple/target/com.mycompany.roo.addon.simple-0.1.0.BUILD-SNAPSHOT.jar
7) Arranco el addon:
>osgi start –url file:///DESARROLLO/PruebasConcepto/addon-simple/target/com.mycompany.roo.addon.simple-0.1.0.BUILD-SNAPSHOT.jar
Veremos que nos da un error de este tipo:
![]()
8) El error indica que el addon está usando unas clases que no están en el JAR, es normal puesto que hemos añadido tres dependencias que el addon no puede encontrar.
Los addons Spring ROO son módulos OSGI, para que se compile correctamente (incluyendo las dependencias debemos modificar el pom.xml del proyecto y añadir:
· Private-Package: son los paquetes que necesita el Addon (imports) (admiten * y ¡).
· DynamicImport-Package: si, como es el caso, los JARs a su vez dependen de otros tenemos que usar esta opción, indicándole los paquetes que queremos que se importen de forma dinámica, es decir, sólo si se necesitan.
| <Export-Package>es.luismi.*</Export-Package>
<Private-Package>model.*,org.eclipse.emf.*</Private-Package> <DynamicImport-Package>*,org.eclipse.core.runtime,org.eclipse.core.resources,org.eclipse.core.runtime.content,org.eclipse.core.runtime.*</DynamicImport-Package> |
9) Tras hacer esto desintalará el addon y lo volveré a instalar:
>osgi uninstall –bundleSymbolicName es.luismi.roo.addons.main
>osgi install –url file:///DESARROLLO/PruebasConcepto/addon-simple/target/com.mycompany.roo.addon.simple-0.1.0.BUILD-SNAPSHOT.jar
>osgi start –url file:///DESARROLLO/PruebasConcepto/addon-simple/target/com.mycompany.roo.addon.simple-0.1.0.BUILD-SNAPSHOT.jar
Ya podemos usar el addon!



Deja un comentario