SpringInitializrスキャフォールディングの詳細な説明

以前、「 start.spring.io をベースに Java スキャフォールディングのカスタマイズを実現した」という記事で、当社のマイクロサービス スキャフォールディング プロセスの過去と現在を説明し、 springInitializr をベースとしたスキャフォールディング 2.0 バージョンについて言及しました。今日は、その実装プロセスと詳細について共有する予定であり、このプロジェクトは Github でオープンソース化されています。

start-parent:https://github.com/studeyang/start-parent

ウェルカムスター

1. プロジェクト構造の紹介

プロジェクトはinitializr、start-client、start-siteの3つの部分に分かれており、重要な部分を以下に説明します。

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                     脚手架后端

以下に示すように、プロジェクト間の依存関係図を簡略化しました。

依存関係グラフ

プロジェクトの全体状況を理解した上で、私の思考回路に従って一緒にプロジェクトを作り上げてください。

2. Gitlab の統合

プロジェクトで「プロジェクトの作成」機能を使用する場合は、このステップを設定する必要があります。ここではgitlab.com例として、Gitlab との統合を完了する方法を紹介します。

まず、後続のログイン認証ジャンプを完了するために、Gitlab にアプリケーションを信頼させる必要があります。Gitlab プラットフォームでスキャフォールディング アプリケーションを構成します。

アプリケーションの追加

ここではローカル開発環境のリダイレクト URI を設定しましたが、後でサーバーにデプロイする必要がある場合は、スキャフォールディング サーバーのバックエンド アドレスを設定する必要があります。

アプリケーションID

構成が完了すると、Gitlab はアプリケーションを記録し、アプリケーション ID とシークレットを割り当てます。これら 2 つのフィールドの値を開始サイトの 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

ここでは、関連フィールドである authorization-uri、token-uri、user-info-uri について簡単に紹介します。これら 3 つのフィールドは固定されており、設定する必要はありません。

  • Base-url:gitlab管理プロジェクトを使用する場合は、base-url構築したアドレスに設定できますgitlab
  • redirect-uri: gitlab 認証後のリダイレクト アドレス。リダイレクトはコード パラメーターを運ぶため、ここではバックエンドがリダイレクトを受信するために使用され、ブラウザーへの公開が回避され、セキュリティが向上します。
  • client-id: gitlab によって割り当てられたアプリケーション ID。
  • client-secret: gitlab によって割り当てられたシークレット。
  • admin.name: gitlab アカウント。プロジェクトの作成と最初のプロジェクト コードの送信に使用されます。管理者アカウントを構成することをお勧めします。
  • admin.password: gitlab アカウントのパスワード;

3. コンポーネントの追加

次にコンポーネントの依存関係を追加します。casslog-spring-boot-starterここでは Jar パッケージを例に挙げます。コンポーネントが SpringBoot の一部のバージョンのみをサポートしている場合は、次のように互換性範囲を設定できます。

compatibility-range: "[1.4.2.RELEASE,1.5.7.RELEASE]"

完全な構成は次のとおりです。

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: {
    
    参考文档}

依存関係を構成します。

  • "name" コンポーネントの依存関係カテゴリの名前。例: オープン ソース インフラストラクチャ
  • このカテゴリの「bom」依存関係パッケージ管理ライブラリ
  • "repository" このカテゴリの依存パッケージのリポジトリ
  • 「コンテンツ」固有の依存関係パッケージ

コンテンツを設定します。

  • 「name」はパッケージ名に依存します
  • 「id」はパッケージの一意の識別子(コード内で使用される)によって異なります。
  • 「groupId」はパッケージのgroupIdに依存します
  • 「artifactId」はパッケージ artifactId に依存します
  • 「説明」はパッケージの説明に依存します
  • 「スターター」が spring-boot-starter かどうか
  • 「compatibility-range」が依存する springboot のバージョン
  • 「リンク」コンポーネントのドキュメント

設定したエフェクト図は以下の通りです。

コンポーネントによるレンダリングの追加

4. アプリケーションをデプロイする

次に、スキャフォールディングをサーバーにデプロイできます。

ここで注意してください。Gitlab のリダイレクト URI をスキャフォールディング サーバーのアドレスに変更することを忘れないでください。

4.1 ステップ 1: プロジェクトのパッケージ化

# 打包前端工程
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 ステップ 2: Docker イメージを作成する

cd {
    
    projectRoot}/start-site
docker build -t start-site:0.0.1 .

ミラーを実行するだけです。効果図は以下の通りです。

足場のメインインターフェイス

5. 足場を使用する正しい姿勢

5.1 HELP.md によるドキュメントの管理と使用

「3. コンポーネントの追加」の手順で設定したドキュメントリンクは、以下のように HELP.md ファイルに表示されます。

ヘルプ.md

5.2 プロジェクトの保存/共有

設定したプロジェクトは「共有...」機能で保存できます。

共有

5.3 IDEA でのスキャフォールディングの使用

プロジェクトはIDEAで素早く作成でき、スキャフォールディングサーバーのアドレスを設定するだけで済みます。IDEA のコミュニティ版にはこの機能がないことに注意してください。

アイディア

まとめ

この記事では Spring Initializr スキャフォールディングの構築プロセスを紹介します。このプロセス中に問題が発生した場合は、ISSUE を送信するか、公式アカウント「Student Yang technotes」のバックグラウンドで私にメッセージを残してください。

おすすめ

転載: blog.csdn.net/yang237061644/article/details/128067907