Creación de un proyecto a partir del arquetipo AMAP

Última modificación por Admin el 06/03/2025 16:39

Creación de un proyecto a partir del arquetipo AMAP

 

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/amap-3.0-repository</localRepository>

 <profiles>
  <profile>
   <properties>
    <archetypeCatalog>https://snexus01.intranet.gobcantabria.es:8443/repository/amap-3.0</archetypeCatalog>
   </properties>
   <id>amap-profile</id>
   <pluginRepositories>
    <pluginRepository>
     <id>amap-plugins</id>
     <name>amapPlugins</name>
     <url>https://snexus01.intranet.gobcantabria.es:8443/repository/amap-plugins</url>
     <snapshots />
    </pluginRepository>
   </pluginRepositories>
  </profile>
 </profiles>

 <mirrors>
  <mirror>
   <id>central-mirror</id>
   <name>repositorio amap</name>
   <url>https://snexus01.intranet.gobcantabria.es:8443/repository/amap-3.0</url>
   <mirrorOf>central</mirrorOf>
  </mirror>
  <mirror>
   <id>internal-repository</id>
   <name>repositorio vacío</name>
   <url>https://snexus01.intranet.gobcantabria.es:8443/repository/external-empty-mirror</url>
   <mirrorOf>*,!central,!amap-plugins</mirrorOf>
  </mirror>
 </mirrors>

 <activeProfiles>
  <activeProfile>amap-profile</activeProfile>
 </activeProfiles>

 <servers>
  <server>
   <id>nexus3</id>
   <username>${server.username}</username>
   <password>${server.password}</password>
  </server>
 </servers>

</settings>

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

Nota 2: 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] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] >>> maven-archetype-plugin:2.3:generate (default-cli) > generate-sources @ standalone-pom >>>
[INFO]
[INFO] <<< maven-archetype-plugin:2.3:generate (default-cli) < generate-sources @ standalone-pom <<<
[INFO]
[INFO]
[INFO] --- maven-archetype-plugin:2.3: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: https://snexus01.intranet.gobcantabria.es:8443/repository/amap-3.0 -> es.gobcantabria.arquetipos:amap-angular-front-archetype-basic (AMAP Arquetipo - Angular Front)
2: https://snexus01.intranet.gobcantabria.es:8443/repository/amap-3.0 -> es.gobcantabria.arquetipos:amap-spring-back-archetype-basic (AMAP Arquetipo - Spring Back)
3: https://snexus01.intranet.gobcantabria.es:8443/repository/amap-3.0 -> es.gobcantabria.arquetipos:amap-springmvc-archetype-basic (Arquetipo AMAP - Spring MVC)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): :

Se debe seleccionar el identificado como amap-angular-front-archetype-basic. En este caso, habrá que introducir por consola el número 'XXX', que corresponde con el arquetipo deseado.

Nota: Si no se encuentra el arquetipo amap-angular-front-archetype-basic, habrá que añadir el archetype-catalog.xml, que se encuentra en http://maven.cantabria.es/artifactory/amap-3.0/archetype-catalog.xml a su carpeta m2 de local.

'XXX':  https://snexus01.intranet.gobcantabria.es:8443/repository/amap-3.0 -> es.gobcantabria.arquetipos:amap-angular-front-archetype-basic (AMAP Arquetipo - Angular Front)

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.
  • guionNombreProperties: Nombre properties con un guion, se recomienda no cambiar este valor
  • nombreProperties: Nombre de los ficheros de properties, se recomienda no cambiar este valor
  • 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': : miapp
[INFO] Using property: version = 1.0.0
jun 07, 2023 10:42:57 AM org.apache.velocity.runtime.log.JdkLogChute log
INFORMACIËN: FileResourceLoader : adding path '.'
Define value for property 'package':  es.gobcantabria.aplicaciones.miapp: :
Define value for property 'descripcion': : miapp descripcion
Define value for property 'guionNombreProperties':  _miapp: :
Define value for property 'nombreProperties':  miapp: :
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: miapp descripcion
guionNombreProperties: _miapp
nombreProperties: miapp
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-front.PNG

Para poder levantar la aplicación localmente utilizando Visual Studio Code y poder desarrollar código en el proyecto de Angular propiamente dicho nos situaremos en la carpeta src/main/front y se ejecutará el siguente comando, que instalará y configurará las dependencias necesarias:

npm install

Una vez se hayan completado los pasos anteriores, en el mismo directorio src/main/front se podrá ejecutar el comando serve para desplegar la aplicación. Por defecto se levanta en el puerto 4200.

ng serve

De esta forma, si el backend está levantado a su vez y se ha configurado el cliente del SSO, ya se podrá realizar el intercambio peticiones y datos entre ambos proyectos.

En el caso de no disponer de un backend funcional o si no se ha solicitado el alta de la aplicación en el SSO, se puede levantar la parte frontal en modo "mock" utilizando la etiqueta correspondiente:

ng serve --configuration mock

Al levantar el frontal en modo "mock" se sustituyen los servicios del backend por mocks configurables, que devuelven datos de prueba cuando se hacen peticiones a los servicios.

A su vez, este modo mockea el login, lo que permite ignorarlo y navegar sin necesidad de iniciar sesión con ningun usuario. Sin embargo esto último es una medida temporal y se recomienda pedir al equipo de Arquitectura el alta en el SSO de pruebas para poder configurar la seguridad de la aplicación antes de la primera implantación.
Paralelamente se debe solicitar el alta del SSO al analista correspondiente en los tres entornos.

De forma excepcional se podrá levantar la parte frontal emulando el entorno de producción con el comando:

ng serve --configuration production

A diferencia de arquetipos anteriores, el frontal de AMAP 3.0 no cuenta con perfiles en el pom.xml, y en su lugar existen los ficheros de entorno environment.ts, environment.mock.ts y environment.prod.ts.
Cuando se levanta la aplicación, dependiendo de la configuracion que se elija, se carga la configuración de uno de estos tres ficheros. Por defecto se carga el environment.ts, pero se puede usar una etiqueta si se desea usar otro environment diferente.

Existen una serie de ficheros de propiedades que se utilizan en la aplicación para configurar el acceso al cliente del SSO, definir endpoints o establecer cualquier valor que pueda ser externo al código y variable respecto al entorno en el que se desee desplegar. Hace falta configurar el servidor para que apunte a estos ficheros.

  • app.properties -> Propiedades únicas de la aplicacion, administradas por el desarrollador
  • sistemas_app.properties -> Propiedades unicas de la aplicacion, tasadas.
  • sistemas_global.properties -> Propiedades globales a todas las aplicaciones, tasadas.

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

Para empaquetar y desplegar la aplicación se seguirá el mismo proceso que en otros arquetipos, utilizando el archivo de configuracion si se hace desde la linea de comandos, o desde el workspace donde esté configurado dicho archivo.

mvn clean package -s {path}\.m2\amap-3.0-snapshots-maven-settings.xml

Una vez se dispone del fichero WAR desplegable se añade al servidor JBoss correspondiente para realizar el despliegue.

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