Table of Contents
Gestión de proyectos con Maven
¿Qué es Maven?
Crear un proyecto con Maven
Añadir librerias (dependencias) a un proyecto
Para añadir una librería a un proyecto gestionado con Maven, primero tendremos que buscarla en el repositorio de la herramienta en Maven Repository. Una vez localizada la libreria y seleccionada su versión (tiene un buscador donde podéis buscar por nombre o descripción de la librería), tendremos que copiar el código XML que describe la libreria como dependencia y copiarla al fichero pom.xml de nuestro proyecto, dentro de las etiquetas <dependencies> . . . </dependencies>
(Puedes ver un ejemplo aqui.
Ejemplos
Fichero POM de ejemplo
Dependencias para Hibernate y el driver JDBC de MySQL
Tendremos que incluir ambas dependencias dentro de las etiquetas <dependencies></dependencies>
del fichero pom.xml
.
Para hibernate:
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.3.7.Final</version> </dependency>
Para MySQL:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.13</version> </dependency>
Dependencia para generar javadoc
De forma similar, incluimos la dependencia para que podamos generar, utilizando Maven, la documentación javadoc de nuestro proyecto, que se creará cuando ejecutemos el goal javadoc:javadoc
de Maven.
<dependency> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>3.0.1</version> </dependency>
Plugin para empaquetar la aplicación y sus dependencias como un único jar ejecutable
Tendremos que añadir un plugin de maven para generar ficheros jar:
. . . </dependencies> <build> <plugins> . . . <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <archive> <manifest> <mainClass>com.sfaci.ejemplohibernate.Aplicacion</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </execution> </executions> </plugin> . . . </plugins> </build>
Plugin para especificar la versión de Java con la que se debe compilar
. . . </dependencies> <build> <plugins> . . . <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> . . . </plugins> </build>
Fichero pom.xml completo
Y a continuación un ejemplo completo de fichero pom.xml
con todas las opciones que se han comentado, donde se puede ver dónde va cada una con respecto al resto del fichero.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.sfaci</groupId> <artifactId>ejemplohibernate</artifactId> <version>0.1</version> <name>Ejemplo Hibernate</name> <description>Proyecto de ejemplo con Hibernate</description> <dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.3.7.Final</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.13</version> </dependency> <dependency> <!-- Genera javadoc con el goal javadoc:javadoc --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>3.0.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <!-- Empaqueta la aplicación y sus dependencias en un solo jar --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <archive> <manifest> <mainClass>com.sfaci.ejemplohibernate.Aplicacion</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </execution> </executions> </plugin> <plugin> <!-- Especifica la versión de Java que emplea el proyecto --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>
© 2016-2019 Santiago Faci