Creación de un proyecto a partir del arquetipo AMAP

Última modificación por Administrator el 2019/07/30 14:55

El Gobierno de Cantabria pone a disposición de los proveedores un repositorio corporativo de Maven. Este repositorio provee de un catálogo de arquetipos entre los que se encuentra el básico para la creación de cualquier aplicación JEE estándar AMAP. Para crear un proyecto nuevo en base a este arquetipo se han de seguir los siguientes pasos:

1 Incluir el repositorio maven del gobierno de cantabria en su fichero fichero settings.xml en el raiz de su repositorio maven ( normalmente $HOME\.m2) o bien en el de settings.xml global de la instalación de maven

<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                                                 http://maven.apache.org/xsd/settings-1.0.0.xsd" 
                                                 xmlns="http://maven.apache.org/SETTINGS/1.0.0"
                                                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <localRepository>${user.home}/.m2/repository-amap</localRepository>
  <profiles>
       <profile>
            <id>amap-profile</id>
             <repositories>
                    <repository>
                          <id>central</id>
                         <name>amap</name>
                         <url>http://maven.cantabria.es/artifactory/amap</url>
                    </repository>
                    <repository>
                           <id>amapSnapshot</id>
                           <snapshots />
                           <name>amapSnapshot</name>
                           <url>http://maven.cantabria.es/artifactory/amap</url>
                    </repository>
              </repositories>
              <pluginRepositories>
                    <pluginRepository>
                           <snapshots />
                          <id>central</id>
                         <name>amap</name>
                         <url>http://maven.cantabria.es/artifactory/amap</url>
                     </pluginRepository>
                    <pluginRepository>
                           <snapshots />
                          <id>plugins</id>
                         <name>plugins</name>
                         <url>http://maven.cantabria.es/artifactory/plugins</url>
                     </pluginRepository>
               </pluginRepositories>
       </profile>
  </profiles>
  <activeProfiles>
       <activeProfile>amap-profile</activeProfile>
   </activeProfiles>
 
</settings>

Nota 1: Como excepción se permitirá incluir el driver ojdbc (groupId:com.oracle, arctifactId:ojdbc7 y versión:12.1.0.2.0) únicamente para el ámbito de los tests, ya que es una librería ya incluida en el servidor.

Nota 2: Se ha indicado un directorio por defecto diferente denominado repository-amap esto es para facilitar el desarrollo separando las librerías del framework de las del resto del equipo de desarrollo.

2 Incluir en el archivo archetype-catalog.xml ubicado en el raiz de su repositorio maven (normalmente $HOME\.m2) el siguiente contenido: 

<?xml version="1.0" encoding="UTF-8"?>
<archetype-catalog xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0 
http://maven.apache.org/xsd/archetype-catalog-1.0.0.xsd"
    xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <archetypes>
      <archetype>
            <groupId>es.gobcantabria.arquetipos</groupId>
            <artifactId>amap-springmvc-archetype-basic</artifactId>
            <version>1.1.6</version>
            <description>Arquetipo AMAP - Spring MVC</description>
        </archetype>
    </archetypes>
</archetype-catalog>

si el fichero no existiese deberá crearlo con este contenido.

3 Invocar el comando de creación de aplicaciones a partir de arquetipos en el directorio (prompt) donde se quiera crear la aplicación:

$> mvn archetype:generate

Maven mostrará una lista de arquetipos y solicitará al usuario indicar el número de arquetipo seleccionado:

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] >>> maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom >>>
[INFO] 
[INFO] <<< maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom <<<
[INFO] 
[INFO] --- maven-archetype-plugin:2.2:generate (default-cli) @ standalone-pom ---
[INFO] Generating project in Interactive mode
...
910: remote -> sk.seges.sesam:sesam-annotation-archetype (-)
911: remote -> tk.skuro:clojure-maven-archetype (A simple Maven archetype for Clojure)
912: remote -> uk.ac.rdg.resc:edal-ncwms-based-webapp (-)
...
'XXX': local -> es.gobcantabria.arquetipos:amap-springmvc-archetype-basic (Arquetipo AMAP - Spring MVC)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 343:

De todos ellos (si estamos conectados al repositorio corporativo) se debe seleccionar el identificado como amap-springmvc-archetype-basic. En este caso, habrá que introducir por consola el número 'XXX', que corresponde con el arquetipo deseado.

'XXX': local -> es.gobcantabria.arquetipos:amap-springmvc-archetype-basic (Arquetipo AMAP - Spring MVC)

De modo interactivo, la herramienta nos pedirá una serie de datos necesarios para la creación del arquetipo. Dichos datos se deberán cumplimentar siguiendo las normas de codificación Maven

  • groupId: Grupo donde se incluirá la aplicación (a efectos de Maven). Normalmente será es.gobcantabria.aplicaciones.
  • artifactId: Identificador de la aplicación (rec, sogi...). Importante es recomendable elegir un nombre adecuado, no muy extenso sin caracteres raros o extraños.
  • version: Versión. Normalmente será 1.0.0
  • package: Paquete java del que penderán las clases de la aplicación. Normalmente, siguiendo las normas de codificación JEE será es.gobcantabria.aplicaciones.<artifactId>
  • descripcion: Breve descripción de la aplicacion.
  • fecha: Fecha de versión.
  • nombre_descriptivo: Nombre largo de la aplicación. P.e: Registro Electrónico Común
Define value for property 'groupId': : es.gobcantabria.aplicaciones
Define value for property 'artifactId': : miapp
Define value for property 'version': : 1.0.0
Define value for property 'package': : es.gobcantabria.aplicaciones.miapp
Define value for property 'descripcion': : aplicacion de prueba
Define value for property 'fecha': : 2015/02/05
Define value for property 'nombre_descriptivo': : miapp
Confirm properties configuration:
groupId: es.gobcantabria.aplicaciones
artifactId: miapp
version: 1.0.0
package: es.gobcantabria.aplicaciones.miapp
descripcion: aplicacion de prueba
fecha: 2015/02/05
nombre_descriptivo: miapp
 Y: : 

Por último el asistente nos pedirá confirmación y creará la aplicación en el mismo directorio donde tenemos el prompt.

arquetipo.png

La aplicación creada cumple todas las normas básicas del Sonar. Está 100% documentada (javadoc) y no tiene código duplicado.

sonar.png

El siguiente paso es abrir el IDE correspondiente e importar la aplicación creada con el arquetipo maven: 

  • Se ha de importar como una aplicación maven: opcionalmente se podrá actualizar el proyecto como proyecto maven para refrescar las librerias pendientes de descargar. 
  • establecer el acceso a base de datos : para este punto hay dos opciones, activar el perfil de local en pom.xml del war (deshabilitando el de gobierno) por lo que se utilizará una base de datos embebida o bien mantener el perfil de gobierno, configurar un jndi en servidor de aplicaciones y vincularlo a una base de datos en la que se han de crear las tablas y datos en dicha base de datos, en la carpeta "scriptsIniciales" existen dos ficheros dataOracle.sql y schemaOracle.sql con la generación para Oracle. Independientemente de la opción elegida, cada vez que se entregue una aplicación generada con el arquetipo deberá estar activado únicamente el perfil de gobierno (o su funcionamiento ser idéntico al de esta situación).
  • Añadirla al servidor JBoss o Tomcat que se tenga configurado en dicho IDE. 
  • Despues se ha de arrancar dicho servidor y probar la ejecución de la aplicación web. Para lo cual habrá que poner en general en la barra de direcciones del navegador que se use la dirección-URL que se haya configurado. (En general http://localhost:8080/xxxxxx  o http://127.0.0.1:8080/xxxxxx siendo xxxxxx el nombre de la aplicación generada).

NOTA: Es importante crear antes el fichero properties de la aplicación y definir dentro las siguientes 2 propiedades con los valores indicados:

  • sistemas.app.hibernate.show_sql=true
  • database.generateDdl=true

Ya que sino el despliegue y la ejecución de la aplicación dará errores, y no se llevará acabo correctamente.

Véase la información al respecto sobre ficheros properties en la sección de AccesoPropiedadesSistema

NOTA:
El fichero pom.xml contiene dos perfiles de maven env-local y env-gob que se encargan tanto de añadir sus correspondientes ficheros de 
configuración del directorio "src/main/config/" como de asignar una property en maven usada en este caso para definir si algunas 
dependencias son compile, en el caso de que el perfil sea env-local y provided en caso de que sea env-gob.
En caso de ser provided cogerá las dependencias suministrados por el servidor jboss.

Llegados a este punto se obtendrá el acceso a la aplicación generada, a la pantalla inicial, de "login".

miapp.png

A la que se podrá acceder con el código de usuario y password: administrador (usando el mismo término en ambas casillas)
Según la configuración definida en el fichero 'applicationContext-security.xml' de la aplicación.

© 2014 GOBIERNO DE CANTABRIA - AVISO LEGAL Y PROTECCIÓN DE DATOS