Hace algún tiempo, en el artículo "Basado en start.spring.io, me di cuenta de la personalización del scaffolding de Java", describí el pasado y el presente del proceso de scaffolding de microservicios de nuestra empresa y mencioné la versión 2.0 del scaffolding basado en spring initializr. Hoy planeo compartir con ustedes el proceso de implementación y los detalles.El proyecto ha sido de código abierto en Github.
inicio-padre:https://github.com/studeyang/start-parent
estrella de bienvenida
1. Introducción a la estructura del proyecto
El proyecto se divide en tres partes: initializr, start-client y start-site.Las partes importantes se describen a continuación.
start-parent
|- initializr 代码生成
|- initializr-actuator
|- initializr-bom
|- initializr-docs
|- initializr-generator 生成基础工程代码
|- initializr-generator-spring 生成 spring 工程代码
|- initializr-generator-test 单元测试的封装
|- initializr-generator-zebra 生成 zebra 分层架构
|- initializr-metadata 工程元数据(pom 相关定义)
|- initializr-parent
|- initializr-service-sample
|- initializr-version-resolver 版本解析
|- initializr-web
|- start-client 脚手架前端
|- start-site 脚手架后端
He simplificado el diagrama de dependencia entre proyectos, como se muestra a continuación.
Después de comprender la situación general del proyecto, siga mi línea de pensamiento y construyan el proyecto juntos.
2. Integra Gitlab
Si desea utilizar la función "Crear proyecto" en el proyecto, debe configurar este paso. Aquí lo tomo gitlab.com
como ejemplo para presentar cómo completar la integración con Gitlab.
Primero, debemos permitir que Gitlab confíe en nuestra aplicación para completar el salto de autorización de inicio de sesión posterior. Configure la aplicación de scaffolding en la plataforma Gitlab.
Aquí configuré el URI de redirección del entorno de desarrollo local. Si necesita implementar en el servidor más adelante, debe configurar la dirección de back-end del servidor de andamios.
Una vez completada la configuración, Gitlab registra nuestra aplicación y asigna el ID y el secreto de la aplicación. Necesitamos configurar los valores de estos dos campos en el archivo start-site application.yml:
security:
base-url: https://gitlab.com
authorization-uri: ${
security.base-url}/oauth/authorize
token-uri: ${
security.base-url}/oauth/token
user-info-uri: ${
security.base-url}/api/v4/user
redirect-uri: http://127.0.0.1:8081/oauth/redirect
client-id: gitlab client id
client-secret: gitlab client secret
admin:
name: your gitlab admin username
password: your gitlab admin password
Aquí presento brevemente los campos relevantes, autorización-uri, token-uri, usuario-info-uri. Estos tres campos son fijos y no es necesario configurarlos.
- base-url: si usa
gitlab
el proyecto de administración,base-url
puede configurarlo en la dirección que creógitlab
; - redirect-uri: la dirección de redirección después de la autenticación de gitlab, el backend se usa aquí para recibir la redirección, porque la redirección llevará parámetros de código, evitando la exposición al navegador y mejorando la seguridad;
- client-id: ID de aplicación asignado por gitlab;
- client-secret: Secreto asignado por gitlab;
- admin.name: cuenta de gitlab, utilizada para crear un proyecto y enviar el código de proyecto inicial, se recomienda configurar una cuenta de administrador;
- admin.password: contraseña de la cuenta de gitlab;
3. Agregar componentes
A continuación, agregue las dependencias de los componentes. Aquí tomo casslog-spring-boot-starter
el paquete Jar como ejemplo, si el componente solo soporta algunas versiones de SpringBoot, puedes configurar el rango de compatibilidad, por ejemplo:
compatibility-range: "[1.4.2.RELEASE,1.5.7.RELEASE]"
La configuración completa es la siguiente.
initializr:
dependencies:
- name: 开源基础设施
bom: kmw
repository: my-rep
content:
- name: Casslog
id: casslog
groupId: io.github.studeyang
artifactId: casslog-spring-boot-starter
description: 日志工具类
starter: true
compatibility-range: "[1.4.2.RELEASE,1.5.7.RELEASE]"
links:
- rel: guide
href: {
用户手册}
description: Example 快速开始
- rel: reference
href: {
参考文档}
Configurar dependencias.
- "nombre" El nombre de la categoría de dependencia del componente, por ejemplo: infraestructura de código abierto
- biblioteca de administración de paquetes de dependencia "bom" en esta categoría
- "repository" El repositorio de los paquetes dependientes bajo esta categoría
- paquete de dependencia específico de "contenido"
Configurar contenido.
- "nombre" depende del nombre del paquete
- "id" depende del identificador único del paquete (usado en el código)
- "groupId" depende del paquete groupId
- "artifactId" depende del paquete artifactId
- "descripción" depende de la descripción del paquete
- Si "arranque" es spring-boot-starter
- La versión Springboot de la que depende el "rango de compatibilidad"
- Documentación para el componente "enlaces"
El diagrama de efectos configurado es el siguiente.
4. Implementar la aplicación
A continuación, el andamiaje se puede implementar en el servidor.
Aquí hay un recordatorio, recuerde cambiar el redirect-uri de Gitlab a la dirección del servidor de scaffolding.
4.1 Paso 1: Empaquetado del proyecto
# 打包前端工程
cd {
projectRoot}/start-client
sh ../mvnw install
# 打包 initializr 项目
cd {
projectRoot}/initializr
sh ../mvnw clean install -Dmaven.test.skip=true
# 打包 start-site
cd {
projectRoot}/start-site
sh ../mvnw clean install -Dmaven.test.skip=true
4.2 Paso 2: crear una imagen de Docker
cd {
projectRoot}/start-site
docker build -t start-site:0.0.1 .
Solo ejecuta el espejo. El diagrama de efectos es el siguiente.
5. La postura correcta de uso de andamios
5.1 Administrar y utilizar documentos a través de HELP.md
El enlace del documento configurado en el proceso de "3. Adición de componentes" se mostrará en el archivo HELP.md, como se muestra a continuación:
5.2 Guardar/Compartir Proyecto
El proyecto que configuró se puede guardar a través de la función "Compartir...".
5.3 Usando andamios en IDEA
El proyecto se puede crear rápidamente en IDEA, solo es necesario configurar la dirección del servidor de andamios. Cabe señalar que la versión comunitaria de IDEA no tiene esta función.
resumen
Este artículo le presenta el proceso de construcción del andamio Spring Initializr. Si encuentra problemas durante este proceso, puede enviar un PROBLEMA o dejar un mensaje en el fondo de la cuenta oficial "Notas técnicas de Student Yang".