martes, 29 de septiembre de 2015

Mavenizar una aplicación web

Buenas, este es un post muy sencillo que llevo un tiempo queriendo hacer. Hay veces, aunque cada vez menos, que nos podemos encontrar con una aplicación web que no tenga maven. Para gestionar correctamente una aplicación lo mejor (al menos lo que yo uso) es que tenga Maven. A continuación indicamos los pasos a seguir.

Como bien sabéis una aplicación web tradicional tiene el siguiente formato:
  • Una carpeta de código fuente denominada /src.
  • Una carpeta que contiene la información de la aplicación a desplegar denominada /WebContent.
  • Una carpeta que contiene la información no accesible para el usuario denominada WEB-INF localizada /WebContent/WEB-INF.
  • Un documento denominado web.xml que es esencial para la aplicación y que contiene su configuración más básica. Y que estaría ubicado dentro de la carpeta WEB-INF.
 Las aplicaciones Maven tienen una configuración por defecto distintas a la de una aplicación web normal. Por lo que habrá que hacer ciertos ajustes para su correcta configuración. Debemos tener en cuenta que por defecto una aplicación web con maven tiene la siguiente configuración:

  • Cuatro carpetas de código fuentes: /src/main/java (que contiene el código de la aplicación), /src/main/resources (que contiene los archivos de configuración de la aplicación), /src/test/java y /src/test/resources (que son iguales que los java pero solo para los test y que no se incluirán en los .jar). 
  • Una carpeta que contiene la información a desplegar /src/main/webapp. Lo que sería el equivalente al 'WebContent'. 
  • La carpeta WEB-INF con el fichero web.xml dentro de la carpeta 'webapp'. 
  • Un fichero denominado pom.xml que se encuentra en la raíz del proyecto y que contendrá la configuración de Maven. 
 Tras esta breve explicación, los pasos a seguir serían para hacer una aplicación Maven son:

1. Añadirle el fichero pom.xml. El fichero debe de tener una configuración básica. Y esta es:
  • El groupId, artifactId y versión propios de la aplicación. Serán los valores que nos permitirán identificar esta aplicación de otras. Ejemplo:
 es.home.test
 appTestMaven
 1.0.0
  • Indicar si la aplicación se desplegará como un WAR o un JAR (en nuestro caso un war) y el nombre de la aplicación al desplegar:
 war
 appTestMaven
  • Indicar las librerías de las que depende. Este es el apartado más complicado, puesto que no sepamos siempre cuales son sus dependencias exactas. Para indicarlas debemos crear el apartado 'dependencies' e ir incluyendo las dependencias de una en una, ejemplo:
   org.springframework
   spring-core
   3.2.8.RELEASE

    2. Indicar que el proyecto pasa a ser un proyecto Maven. La forma de hacerlo en Eclipse es pulsando el botón derecho sobre el proyecto y en el menú secundario seleccionar las opción: Configure > Convert to Maven Project. 

    3. Al hacer el paso anterior se habrá generado ya la configuración de proyecto Maven, ya solo nos quedará ajustarla. Para ello hacemos lo siguiente:
    • Creamos las carpetas /src/main/java, /src/main/resources, /src/main/webapp, /src/test/java y /src/test/resources. - Movemos los recursos de la carpeta /src a /src/main/java 
    • Movemos los recursos de la carpeta /WebContent a /src/main/webapp 
    • Eliminamos la carpeta build (ya no la necesitaremos). 
    4. Actualizamos el proyecto, para ello pulsamos el botón derecho sobre el proyecto y seleccionamos la opción: Maven > Update project y en la ventana secundaría que aparece pulsamos 'Ok'. Esto nos sirve porque es posible que Eclipse no haya configurado correctamente el proyecto y necesite que se le indique de forma manual.

    Con esto en principio ya tendremos mavenizada la aplicación. Es más fácil de hacer que de decir, eso seguro. 

    1 comentario: