jueves, 18 de agosto de 2011

Maven. Compilar varios proyectos

En la mayoría de proyectos medianamente grandes el código está dividido en varios subproyectos (varios directorios src). El siguiente articulo muestra como generar con maven 2 los ficheros binarios del proyecto.
La mejor forma de saber como se hace es con un ejemplo. Supongamos que se dispone de dos proyectos:













El proyecto1 tiene la siguiente clase:
package es;
public class Dependencia{
public void funcionDos (){}
}
El proyecto2 tiene la siguiente clase:
package es;
public class Main{
public void main (String [] arg){
new es.Dependencia().funcionDos ();
}
}
El proyecto2 es el subproyecto principal del proyecto (siempre hay un subproyecto que es el principal, o al menos el punto de entrada a todo el proyecto) y tiene una dependencia con el proyeto1.
La forma más elegante es generar el proyecto completo es crear 3 ficheros pom.xml: uno para la gestión de todo el proyecto y uno por cada subproyecto. El pom.xml de todo el proyecto se coloca a la altura en el raíz de los subproyectos y luego cada pom.xml en el subproyecto correspondiente. La estructura del proyecto general será:









  • pom-todo.xml:
<project>

<name>Maven 2 Example</name>

<url>http://www.attainware.com/</url>

<modelVersion>4.0.0</modelVersion>

<groupId>es</groupId>

<version>1.0</version>

<artifactId>proyecto</artifactId>

<packaging>pom</packaging>

<modules>

<module>proyecto1</module>

<module>proyecto2</module>

</modules>

</project>



  • Pom.xml del proyecto 1:

<project>

<modelVersion>4.0.0</modelVersion>

<groupId>es</groupId>

<artifactId>proyecto1</artifactId>

<version>1</version>


<build>

<sourceDirectory>src</sourceDirectory>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<configuration>

<source>1.6</source>

<target>1.6</target>

</configuration>

</plugin>

</plugins>

</build>

</project>





  • Pom.xml del proyecto2:

<project>

<modelVersion>4.0.0</modelVersion>

<groupId>es</groupId>

<artifactId>proyecto2</artifactId>

<version>1</version>


<dependencies>

<dependency>

<groupId>es</groupId>

<artifactId>proyecto1</artifactId>

<version>1</version>

</dependency>

</dependencies>


<build>

<sourceDirectory>src</sourceDirectory>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<configuration>

<source>1.6</source>

<target>1.6</target>

</configuration>

</plugin>

</plugins>

</build>

</project>






Ahora solo resta ejecutar el comando mvn -f pom-todo.xml install a la altura del fichero pom-todo.xml. En cada subproyecto se habrá generado una carpeta “target” con todos los binarios.


No hay comentarios: