BUILD1 - Crear un proyecto nuevo
A lo largo de los tutoriales hasta ahora, hemos tomado el proyecto de ejemplo del tutorial IPF y hemos trabajado nuestro ejemplo sobre esa base. El punto clave aquí, sin embargo, es que partimos de un proyecto IPF preexistente que ya estaba configurado y listo para usarse. Ahora nos planteamos la pregunta: «¿Cómo creamos un proyecto IPF completamente nuevo?».
Para esto presentamos el IPF Scaffolder.
Presentación del Scaffolder
El scaffolder es un componente Java que puede invocarse vía Maven para bootstrapear un proyecto completamente nuevo que tendrá la siguiente estructura:
-
Un módulo <project>-domain que contiene toda la configuración de MPS. Como parte de esto, se genera para ti un flujo de ejemplo muy básico (¡el mismo que vimos en la solución inicial del tutorial!).
-
Un módulo <project>-app que contiene un proyecto de arranque basado en Spring Boot con la clase de aplicación ejecutable.
-
Un módulo <project>-service que contendrá toda la implementación Java para tu solución DSL, incluidas las definiciones de dominio y adaptadores.
Ejecutar el Scaffolder
Ejecutemos el scaffolder. Para ello, ejecutamos este comando:
mvn com.iconsolutions.ipf.build:ipf-project-scaffolder-maven:1.0.5:scaffold \
-DipfVersion=2024.3.0 \
-DincludeBusinessFunctions=n \
-DincludeSampleSystems=n \
-DincludeApplication=y \
-DincludeE2E=n \
-DuseBuildScripts=y \
-DsolutionName=examplesolution \
-DmodelName=examplemodel \
-DgroupId=com.iconsolutions \
-Dversion=0.0.1-SNAPSHOT \
-DartifactId=example-project \
-DoutputDir=build/example-project
Hay varias propiedades configurables aquí para revisar:
| Nombre de propiedad | Descripción | Valores permitidos | Ejemplo |
|---|---|---|---|
ipfVersion |
La versión de IPF que deseas usar |
2024.3.0 |
|
includeBusinessFunctions |
De forma predeterminada añade las dependencias para incluir las funciones de negocio de IPF en tu proyecto |
y / n |
n |
includeSampleSystems |
De forma predeterminada añade las dependencias para incluir los sistemas de ejemplo de IPF en tu proyecto |
y / n |
n |
includeApplication |
Añade una aplicación Spring Boot ejecutable a tu proyecto |
y / n |
n |
includeE2E |
De forma predeterminada añade las dependencias para incluir una configuración de entorno docker en tu aplicación |
y / n |
n |
useBuildScripts |
Si la aplicación pretende usarse como un componente reutilizable en una solución distinta, debe activarse. |
y / n |
n |
solutionName |
El nombre de la solución MPS para tu proyecto. |
examplesolution |
|
modelName |
El nombre del modelo MPS para tu proyecto. |
examplemodel |
|
groupId |
Un ajuste estándar de groupId de Maven |
com.iconsolutions |
|
artifactId |
Un ajuste estándar de artifactId de Maven |
example-project |
|
version |
Un ajuste estándar de version de Maven |
0.0.1-SNAPSHOT |
|
outputDir |
La ubicación en la que debe generarse el nuevo proyecto (debe ser un directorio vacío) |
Cualquier ruta de archivo válida |
build/example-project |
|
Debes suministrar la versión objetivo tanto del scaffolder (sacffolderVersion) como usar la versión de IPF compatible (ipfVersion). Las versiones deben ser compatibles; por favor verifica y sustituye los números según la documentación de versiones de IPF y/o los detalles de tu entorno objetivo. |
Una vez ejecutado, el scaffolder comenzará a generar el proyecto por ti; cuando termine podrás ir a la ruta de salida especificada y ver el código generado:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.243 s
[INFO] Finished at: 2024-08-14T14:10:04+01:00
[INFO] ------------------------------------------------------------------------
➜ /build cd example-project
➜ example-project ls -ltr
total 20
drwxrwxr-x 8 icon0377 icon0377 4096 Aug 14 14:10 example-project-domain
drwxrwxr-x 3 icon0377 icon0377 4096 Aug 14 14:10 example-project-service
drwxrwxr-x 3 icon0377 icon0377 4096 Aug 14 14:10 example-project-app
-rw-rw-r-- 1 icon0377 icon0377 2404 Aug 14 14:10 Readme.md
-rw-rw-r-- 1 icon0377 icon0377 2234 Aug 14 14:10 pom.xml
Habiendo generado nuestro proyecto, vamos a construirlo. Ve al directorio base del proyecto y ejecuta:
mvn clean install
Como con los proyectos principales del tutorial, esto generará todo nuestro código MPS junto con las imágenes de docker para la propia aplicación. Después ejecutará tests contra el entorno de contenedores configurado para asegurarse de que todo está en marcha correctamente. Tras unos minutos, deberíamos obtener un resultado de build satisfactorio.
Eso es todo: hemos generado correctamente un proyecto IPF y estamos listos para empezar. El siguiente paso normal sería abrir el flujo en MPS y comenzar a desarrollarlo. Para ello, simplemente abre la carpeta <project>-domain/mps en tu instalación de MPS.