====== Gestión de proyectos con Maven ====== {{ maven.png }} ===== ¿Qué es Maven? ===== Maven es una herramienta para la gestión y construcción de proyectos Java. Permite automatizar todas las fases de desarrollo y construcción de un proyecto, como pueden ser la compilación, ejecución de test unitarios, empaquetado y despliegue. ===== Crear un proyecto con Maven ====== {{ youtube>sop8dxXYMGM }} \\ ===== 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 [[https://mvnrepository.com/|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 '' . . . '' (Puedes ver un ejemplo [[https://datos.codeandcoke.com/apuntes:maven#fichero_pom_de_ejemplo|aqui]].
{{ mvn_version_libreria.png }} Búsqueda de librerías en el repositorio
{{ mvn_libreria.png }} Información sobre una versión concreta de una librería
{{ xml_libreria_pom.png }} XML para copiar al fichero pom.xml
===== Fichero POM de ejemplo ===== === Dependencias para Hibernate y el driver JDBC de MySQL === Tendremos que incluir ambas dependencias dentro de las etiquetas '''' del fichero ''pom.xml''. Para hibernate: org.hibernate hibernate-core 5.3.7.Final Para MySQL: mysql mysql-connector-java 8.0.13 === 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. org.apache.maven.plugins maven-javadoc-plugin 3.0.1 === 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//: . . . . . . org.apache.maven.plugins maven-assembly-plugin package single com.sfaci.ejemplohibernate.Aplicacion jar-with-dependencies . . . === Plugin para especificar la versión de Java con la que se debe compilar === . . . . . . org.apache.maven.plugins maven-compiler-plugin 3.8.0 1.8 1.8 . . . === 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. 4.0.0 com.sfaci ejemplohibernate 0.1 Ejemplo Hibernate Proyecto de ejemplo con Hibernate org.hibernate hibernate-core 5.3.7.Final mysql mysql-connector-java 8.0.13 org.apache.maven.plugins maven-javadoc-plugin 3.0.1 org.apache.maven.plugins maven-assembly-plugin package single com.sfaci.ejemplohibernate.Aplicacion jar-with-dependencies org.apache.maven.plugins maven-compiler-plugin 3.8.0 1.8 1.8 ===== Configurar maven para utilizar JUnit ===== Puedes encontrar [[https://entornos-desarrollo.codeandcoke.com/apuntes:junit|aqui]] cómo configurar tu fichero ''pom.xml'' para poder utilizar JUnit. ---- (c) 2020-2021 Santiago Faci