domingo, junio 17, 2007

Construyendo aplicaciones con Maven 2 y Eclipse RCP

domingo, junio 17, 2007 por Martín

En las últimas semanas he estado modificando jLibrary y migrando su proceso de construcción de Ant a Maven 2. El principal reto ha sido sin ninguna duda el integrar Maven 2 con Eclipse RCP, ya que automatizar la construcción de aplicaciones en este último es bastante complejo.

Afortunadamente al final todo ha salido bien. La clave al final está en utilizar el Maven PDE Plugin y seguir su guía. A nuesro fichero pom.xml hay que añadirle una nueva entrada en plugins especial:
<plugin>
<!-- Maven PDE Eclipse Plugin configuration -->
<groupId>org.codehaus.mojo</groupId>
<artifactId>pde-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<eclipseInstall>E:\eclipse-final</eclipseInstall>
<pdeProductFilename>jlibrary.product</pdeProductFilename>
<pdeBuildVersion>3.2.1.r321_v20060823</pdeBuildVersion>
<format>folder</format>
</configuration>
</plugin>

Si seguís la guía del Maven PDE plugin veréis que los proyectos tienen que estar en una localización especial workspace/plugins. Este es el lugar donde el plugin buscará todas las cosas para instalar. Toda la instalación se basa en el fichero de producto de la aplicación (ejemplo) que especifica todas las partes a construir.

Por último, el otro fichero a tener en cuenta es el de configuración del build (ejemplo). Las posibilidades de configuración son muy amplias. Lo que más me gusta es que con tan sólo modificar una línea puedes tener tu aplicación preparada para ejecutarse en montones de plataformas diferentes:
configs=win32, win32, x86
linux, gtk, ppc &\
linux, gtk, x86 & \
linux, gtk, x86_64 & \
linux, motif, x86 & \
solaris, motif, sparc & \
solaris, gtk, sparc & \
aix, motif, ppc & \
hpux, motif, PA_RISC & \
macosx, carbon, ppc


En fin, que si necesitáis más ayuda simplemente echarle un vistazo a la página donde explico el proceso de construcción para jLibrary, y al proyecto cliente en el SVN de jLibrary. Es bastante sencillo así que no debería haber problemas para adaptarlo a vuestros productos.