Il y a quelque temps, dans l'article "Basé sur start.spring.io, j'ai réalisé la personnalisation de l'échafaudage Java", j'ai décrit le passé et le présent du processus d'échafaudage de microservices de notre entreprise, et mentionné la version 2.0 de l'échafaudage basée sur spring initializr . Aujourd'hui, je prévois de partager avec vous le processus de mise en œuvre et les détails.Le projet a été open source sur Github.
start-parent:https://github.com/studeyang/start-parent
étoile de bienvenue
1. Présentation de la structure du projet
Le projet est divisé en trois parties : initializr, start-client et start-site. Les parties importantes sont décrites ci-dessous.
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 脚手架后端
J'ai simplifié le diagramme de dépendance entre les projets, comme indiqué ci-dessous.
Après avoir compris la situation globale du projet, veuillez suivre mon fil conducteur et construire le projet ensemble.
2. Intégrez Gitlab
Si vous souhaitez utiliser la fonction "Créer un projet" dans le projet, vous devez configurer cette étape. Ici, je gitlab.com
le prends comme exemple pour présenter comment terminer l'intégration avec Gitlab.
Tout d'abord, nous devons laisser Gitlab faire confiance à notre application pour effectuer le saut d'autorisation de connexion suivant. Configurez l'application d'échafaudage sur la plateforme Gitlab.
Ici, j'ai configuré l'URI de redirection de l'environnement de développement local. Si vous avez besoin de déployer sur le serveur ultérieurement, vous devez configurer l'adresse principale du serveur d'échafaudage.
Une fois la configuration terminée, Gitlab enregistre notre application et attribue l'ID et le secret de l'application. Nous devons configurer les valeurs de ces deux champs dans le fichier application.yml du site de démarrage :
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
Ici, je présente brièvement les champs pertinents, autorisation-uri, jeton-uri, utilisateur-info-uri Ces trois champs sont fixes et n'ont pas besoin d'être configurés.
- base-url : si vous utilisez
gitlab
le projet de gestion,base-url
vous pouvez le définir sur l'adresse que vous avez construitegitlab
; - redirect-uri : l'adresse de redirection après l'authentification gitlab, le backend est utilisé ici pour recevoir la redirection, car la redirection portera des paramètres de code, évitant l'exposition au navigateur et améliorant la sécurité ;
- client-id : ID d'application attribué par gitlab ;
- client-secret : secret attribué par gitlab ;
- admin.name : compte gitlab, utilisé pour créer un projet et soumettre le code initial du projet, il est recommandé de configurer un compte administrateur ;
- admin.password : mot de passe du compte gitlab ;
3. Ajouter des composants
Ajoutez ensuite les dépendances des composants. Ici, je prends casslog-spring-boot-starter
le package Jar comme exemple. Si le composant ne prend en charge que certaines versions de SpringBoot, vous pouvez configurer compatibility-range, par exemple :
compatibility-range: "[1.4.2.RELEASE,1.5.7.RELEASE]"
La configuration complète est la suivante.
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: {
参考文档}
Configurez les dépendances.
- "name" Le nom de la catégorie de dépendance du composant, par exemple : infrastructure open source
- bibliothèque de gestion des packages de dépendance "bom" dans cette catégorie
- "repository" Le référentiel des packages dépendants de cette catégorie
- package de dépendance spécifique "contenu"
Configurez le contenu.
- "name" dépend du nom du package
- "id" dépend de l'identifiant unique du package (utilisé dans le code)
- "groupId" dépend du package groupId
- "artifactId" dépend de l'artefact ID du package
- "description" dépend de la description du paquet
- Si "starter" est spring-boot-starter
- La version de springboot dont dépend la "gamme de compatibilité"
- Documentation du composant "liens"
Le diagramme d'effet configuré est le suivant.
4. Déployer l'application
Ensuite, l'échafaudage peut être déployé sur le serveur.
Voici un rappel, pensez à changer l'uri de redirection de Gitlab vers l'adresse du serveur de scaffolding.
4.1 Étape 1 : Présentation du projet
# 打包前端工程
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 Étape 2 : Créer une image Docker
cd {
projectRoot}/start-site
docker build -t start-site:0.0.1 .
Exécutez simplement le miroir. Le diagramme d'effet est le suivant.
5. La bonne posture d'utilisation d'un échafaudage
5.1 Gérer et utiliser des documents via HELP.md
Le lien de document configuré dans le processus de "3. Ajout de composants" sera affiché dans le fichier HELP.md, comme indiqué ci-dessous :
5.2 Enregistrer/partager le projet
Le projet que vous avez configuré peut être enregistré via la fonction "Partager...".
5.3 Utilisation de l'échafaudage dans IDEA
Le projet peut être rapidement créé dans IDEA, il suffit de configurer l'adresse du serveur d'échafaudage. Il convient de noter que la version communautaire d'IDEA n'a pas cette fonction.
résumé
Cet article vous présente le processus de construction de l'échafaudage Spring Initializr. Si vous rencontrez des problèmes au cours de ce processus, vous pouvez soumettre un PROBLÈME ou me laisser un message en arrière-plan du compte officiel "Student Yang technotes".