Creación de un proyecto a partir del arquetipo AMAP

Última modificación por Administrator el 2020/02/18 16:41

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>
            <properties>
                 <archetypeCatalog>http://maven.cantabria.es/artifactory/amap-2.1</archetypeCatalog>
            </properties>
            <repositories>
                    <repository>
                          <id>central</id>
                         <name>amap</name>
                         <url>http://maven.cantabria.es/artifactory/amap-2.1</url>
                    </repository>
                    <repository>
                           <id>amapSnapshot</id>
                           <snapshots />
                           <name>amapSnapshot</name>
                           <url>http://maven.cantabria.es/artifactory/amap-2.1</url>
                    </repository>
              </repositories>
              <pluginRepositories>
                    <pluginRepository>
                           <snapshots />
                          <id>central</id>
                         <name>amap</name>
                         <url>http://maven.cantabria.es/artifactory/amap-2.1</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.

Nota 3: Se especifica el catalog dentro del settings.xml, de esta manera solo deberan aparecer los arquetipos que se encuentren en nuestro repositorio.

2 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
[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
Choose archetype:
1: http://maven.cantabria.es/artifactory/amap-2.1 -> es.gobcantabria.arquetipos:amap-springmvc-archetype-basic (Arquetipo AMAP - Spring MVC 2.1.0 (AMAP 2.1))
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains):

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':  http://maven.cantabria.es/artifactory/amap-2.1 -> es.gobcantabria.arquetipos:amap-springmvc-archetype-basic (Arquetipo AMAP - Spring MVC 2.1.0 (AMAP 2.1))

De modo interactivo, la herramienta nos pedirá una serie de datos necesarios para la creación del arquetipo o mostrará alguna propiedad definida por defecto. 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). Por defecto 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. Por defecto será 1.0.0
  • package: Paquete java del que penderán las clases de la aplicación. Por defecto, siguiendo las normas de codificación JEE será es.gobcantabria.aplicaciones.<artifactId>
  • descripcion: Breve descripción de la aplicación.
  • nombre_descriptivo: Nombre largo de la aplicación. P.e: Registro Electrónico Común
[INFO] Using property: groupId = es.gobcantabria.aplicaciones
Define value for property 'artifactId': : ejemplo
[INFO] Using property: version = 1.0.0
Define value for property 'package':  es.gobcantabria.aplicaciones.ejemplo: :
Define value for property 'descripcion': : App de ejemplo
Define value for property 'nombre_descriptivo': : Aplicación de ejemplo
Confirm properties configuration:
groupId: es.gobcantabria.aplicaciones
artifactId: ejemplo
version: 1.0.0
package: es.gobcantabria.aplicaciones.ejemplo
descripcion: App de ejemplo
nombre_descriptivo: Aplicación de ejemplo
 Y: : 

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

arquetipo.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 viene configurado por defecto el perfil local con una base de datos en memoria 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 https://localhost:8443/xxxxxx siendo xxxxxx el nombre de la aplicación generada).

NOTA: Es importante configurar el servidor apuntando a los ficheros properties de la aplicación, asi como el ruta data:

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 "home".

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 la clase 'UserDetailsServiceLocal' de la aplicación.

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