Boot Add の使用ガイド

project list コマンドで使用可能なすべてのプロジェクトを使用して、既存のプロジェクトにコードと構成を追加できます。

CLI はこれを次のように実行します。

  • Maven ビルドファイルをマージし、不足しているプロジェクトプロパティ、依存関係、依存関係管理、プラグインをターゲットプロジェクトに追加します。

  • パッケージのリファクタリングを実行して、コードが同じパッケージ構造でターゲットプロジェクトにコピーされるようにします。

  • ターゲットプロジェクトの Spring Boot メインアプリケーションに不足しているアノテーションを追加します。

  • 追加されたコードに関する追加情報を記述できるように、README.adoc (または .md) ファイルの名前を README-<project-name>.adoc に変更します。

  • application.yaml ファイルと application.properties ファイルをマージします。

このタスクを実行するためのヒューリスティックは、現時点では 100% では完成していないため、早期採用者であれば、いくつかの問題が発生することが予想されます。

例: 入門 カタログを追加したと仮定します。

spring catalog add gs https://github.com/rd-1-2022/spring-gs-catalog

これにより、選択できる次のプロジェクトが得られます。

┌──────────┬────────────────────────────────────────────────────────┬────────────────────────────────────────────────────────────────┬───────┬──────────────┐
│Name      │URL                                                     │Description                                                     │Catalog│Tags          │
├──────────┼────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────┼───────┼──────────────┤
│web       │https://github.com/rd-1-2022/rpt-rest-service           │Hello, World RESTful web service.                               │gs     │[rest, web]   │
├──────────┼────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────┼───────┼──────────────┤
│jpa       │https://github.com/rd-1-2022/rpt-spring-data-jpa        │Learn how to work with JPA data persistence using Spring Data   │gs     │[jpa, h2]     │
│          │                                                        │JPA.                                                            │       │              │
├──────────┼────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────┼───────┼──────────────┤
│eureka    │https://github.com/rd-1-2022/eureka                     │Spring Cloud Eureka Server                                      │gs     │[cloud,       │
│          │                                                        │                                                                │       │eureka]       │
└──────────┴────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────┴───────┴──────────────┘

新しい Web プロジェクトを作成し、次のコマンドを実行してそのプロジェクトに JPA 機能を追加できます。

spring boot new demo web --package-name com.xkcd
cd demo
spring boot add jpa

プロジェクトツリーには、Web アプリケーションと JPA 機能の両方が含まれるようになりました。

$ tree
.
├── LICENSE
├── mvnw
├── mvnw.cmd
├── pom.xml
├── README.adoc
├── README-jpa.md
└── src
    ├── main
    │   └── java
    │       └── com
    │           └── xkcd
    │               ├── Application.java
    │               ├── customer
    │               │   ├── CustomerCommandLineRunner.java
    │               │   ├── Customer.java
    │               │   └── CustomerRepository.java
    │               └── greeting
    │                   ├── GreetingController.java
    │                   └── Greeting.java
    └── test
        └── java
            └── com
                └── xkcd
                    ├── customer
                    │   └── CustomerRepositoryTests.java
                    └── greeting
                        └── GreetingControllerTests.java

規約

spring boot add の実行時にコードベースのインテリジェントなマージを実行するには、プロジェクト内の次の規則に従う必要があります。

  • メインの @SpringBootApplication は、サブパッケージ内の他のすべてのコードとともにパッケージ階層のルートに配置する必要があります。

  • @SpringBootApplication クラスには追加の @Bean アノテーションがあってはなりません。すべての構成は別の @Configuration クラスに存在する必要があります。

制限

現在、単一モジュールの Maven プロジェクトのみがサポートされています。単一モジュール Gradle プロジェクトのサポートは、1.0 リリースで計画されています。マルチモジュールプロジェクトをサポートするためのタイムラインは定義されていません。