Tutorial Spring Vaadin Hibernate > 2. Estructura del proyecto

Escrito por 5 abril, 2016Desarrollo de software
Tutorial Spring Vaadin HIbernate, Estructura del proyecto

En esta segunda entrega del tutorial Spring Vaadin Hibernate vamos a empezar creando la estructura de nuestro proyecto en el IDE que hayamos elegido.

Ya comentamos en la anterior entrada que se trata de un proyecto multi módulo, concretamente de 3 capas: persistencia, negocio y cliente. Hemos elegido como tema de la aplicación el de una tienda de mascotas, ya que disponíamos de una base de datos en memoria y se entiende fácilmente. Así que empecemos creando el proyecto petshop con los tres módulos tal y como podemos ver a continuación:

estructura

En este tutorial estamos utilizando Maven para la creación del proyecto y la gestión de dependencias, es por ello que cada módulo hace uso de su propio pom.xml.

¿Por qué Maven? 

Existe mucha información con respecto a Maven en Internet, pero vamos a destacar una serie de ventajas que nos aporta y que lo hace un imprescindible en nuestros proyectos:

  • Aporta consistencia en todos nuestros proyectos, es decir, hace que todos nuestros proyectos estén organizados de igual forma al estandarizar la estructura de directorios.
  • Define e implementa un ciclo de vida, por lo que permite ejecutar cualquier fase del ciclo de vida de una forma realmente sencilla.
  • Gestión de dependencias. Antes de la llegada de Maven, lo habitual era tener todas las librerías incluidas en la estructura del proyecto, lo que era mucho más complicado de mantener y malgastaba mucho espacio.
  • Integración con innumerables herramientas y frameworks.

¿Y para qué sirve el archivo pom? Se trata de un archivo de tipo XML, el cual contiene la configuración sobre cómo se construirá nuestro proyecto a través de Maven. De manera que si necesitamos utilizar una librería (JAR) para nuestro proyecto éste es el archivo dónde debemos definir qué librería necesitamos y su versión, además de una gran cantidad de opciones diferentes, como el ámbito, la codificación, plugins, etc.

Añadiendo las características necesarias al proyecto

Ahora que ya tenemos creado nuestro proyecto con sus tres módulos, tenemos que añadir las configuraciones necesarias y versiones de las librerías que vamos a utilizar al pom. Realmente no tenemos uno, sino que necesitamos un pom principal más uno por cada uno de los módulos.

Con esta estructura conseguimos que cada módulo tenga sus propias configuraciones y las dependencias que necesite utilizar y sólo esas dependencias, de forma que, por ejemplo, en nuestro módulo web no tendremos las dependencias del módulo core y viceversa. A su vez, si hay alguna librería necesaria para todo el proyecto, esta se tendrá que definir en el pom principal.

Aquí vemos un ejemplo de la dependencia para Spring cuya versión es la 4.1.6.RELEASE.

springDependency

Es posible que a veces no sepamos qué dependencia añadir ni qué versión… Para poder buscar estas dependencias existen diversos repositorios. Nosotros recomendamos http://mvnrepository.com/, el cual nos provee la dependencia siguiendo la sintaxis utilizada en el pom, de manera que sólo tendremos que copiar este código en nuestro archivo, tal y como se muestra en la siguiente imagen:

MavenRepository

Un aspecto muy importante a definir en el pom es el empaquetado de cada módulo. Ya comentamos en la anterior entrada que el módulo web se empaquetaría como un war y los otros dos como una librería jar. Para definir esto tenemos que añadir la etiqueta <packaging> con el empaquetado que necesitemos en cada uno. Ejemplo para el módulo web: <packaging>war</packaging>

Y ya solo nos faltaría enlazar los tres módulos, para ello tenemos que modificar el pom principal de la siguiente manera:

Screen Shot 2016-03-19 at 22.37.10

Compilar el proyecto

En cuanto tengamos todas nuestras configuraciones realizadas ya podemos compilar nuestro proyecto para que se descarguen todas las librerías que acabamos de añadir. En el propio IDE se permite compilar con maven el ciclo de vida que nos interese. Para nuestro caso limpiaremos e instalaremos nuestro proyecto con los comandos clean install, lo que por defecto genera el artefacto que necesitamos en la carpeta target.

Join the discussion Un comentario

Dejar un comentario

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.

ACEPTAR
Aviso de cookies