新規プロジェクトの作成
spring boot new
コマンドを使用すると、Spring Boot アプリケーションを簡単に作成できます。
このコマンドは、既存の完全に機能する Spring Boot アプリケーションのソースコードリポジトリからコンテンツをコピーして、新しいプロジェクトを作成します。
まず、--name
オプションを指定します。これにより、テスト付きの基本的な RESTful Web アプリケーションが作成されます。--from
オプションを使用して、Spring Data JPA や Spring Cloud Stream などのさまざまな機能を持つプロジェクトを作成することもできます。
さらにカスタマイズするには、--package-name
および --description
だけでなく、さまざまなオプション ( --group
、--artifact-id
、--version
など) を柔軟に指定できます。--package-name
を指定すると、ソースコードリポジトリの複製後にコードがリファクタリングされます。
次のセクションでは、これらの各トピックについて詳しく説明します。
既存のアプリケーションにコードを追加する方法の詳細については、 "spring boot add" および "ユーザー定義コマンド" を参照してください。
クイックスタート
新しいディレクトリに簡単な Web アプリケーションをすばやく作成するには、次のコマンドを実行します。
spring boot new my-app
cd my-app
./mnvw spring-boot:run
これにより、my-app
ディレクトリに基本的な Web アプリケーションが作成されます。この例では、--name
オプションは位置的に渡され、spring boot new --name my-app
と同等です。
現在の作業ディレクトリにプロジェクトを作成したい場合は、名前として .
を指定します。
mkdir my-new-app
cd my-new-app
spring boot new .
./mvnw spring-boot:run
さまざまな機能を持つアプリケーションを作成するには、spring boot new my-app
コマンドでオプション --from
を使用します。--from
は --name
の後に来るため、位置パラメーターを使用できます。
例:
spring boot new my-app jpa
cd my-app
./mnvw spring-boot:run
前述のコマンドは、Spring Data JPA 機能を含む新しいアプリケーションを作成します。
前の例では、新しいアプリの名前 (my-app
) と --from
オプション (jpa
) の両方が位置パラメーターとして指定されています。これは spring boot new --name my-app --from jpa
を使用するのと同じです。
名前 jpa
は、デフォルトの入門プロジェクトカタログに登録され、追加のメタデータを含む特定の URL のエイリアスとして機能します。これについては、次のセクションで詳しく説明します。
名前で作成する
プロジェクトカタログには、特定の Spring テクノロジを実証するコードリポジトリのリストが含まれています。デフォルトのプロジェクトカタログ内のリポジトリは、Spring スタートガイドの内容に似ており、さまざまな機能を提供します。
独自のカタログを登録して、さまざまな複雑さと機能のコードリポジトリを提供するオプションを利用できます。
プロジェクトカタログは、新しいプロジェクトに必要な機能を見つけるのに役立ちます。spring boot add
コマンドを使用して既存のプロジェクトにコードを追加するときに、プロジェクトカタログからプロジェクト名を参照することもできます。
デフォルトの「入門」カタログに登録されているプロジェクトを表示するには、次のコマンドを実行します。
spring project-catalog list
このコマンドは、spring boot new
コマンドで使用できる利用可能なプロジェクトカタログを表示します。
┌────┬──────────────────────────────────────────────┬───────────────────────┬───────────────────┐
│Name│URL │Description │Tags │
├────┼──────────────────────────────────────────────┼───────────────────────┼───────────────────┤
│gs │https://github.com/rd-1-2022/spring-gs-catalog│Getting Started Catalog│[java-11, boot-2.7]│
└────┴──────────────────────────────────────────────┴───────────────────────┴───────────────────┘
```
利用可能なプロジェクトを表示するには、次のコマンドを使用します。
spring project list
このコマンドは、使用できるプロジェクトのリストを提供します。各プロジェクトには、spring boot new
に渡すことができる名前があります。次の表は、一般的な出力を示しています。
┌─────────────┬────────────────────────────────────────────────────────┬─────────────────────┬───────┬───────────────┐
│Name │URL │Description │Catalog│Tags │
├─────────────┼────────────────────────────────────────────────────────┼─────────────────────┼───────┼───────────────┤
│web │https://github.com/rd-1-2022/rest-service │Hello, World RESTful │gs │[rest, web] │
│ │ │web service. │ │ │
├─────────────┼────────────────────────────────────────────────────────┼─────────────────────┼───────┼───────────────┤
│jpa │https://github.com/rd-1-2022/rpt-spring-data-jpa │Learn how to work │gs │[jpa, h2] │
│ │ │with JPA data │ │ │
│ │ │persistence using │ │ │
│ │ │Spring Data JPA. │ │ │
├─────────────┼────────────────────────────────────────────────────────┼─────────────────────┼───────┼───────────────┤
│scheduling │https://github.com/rd-1-2022/rpt-spring-scheduling-tasks│How to schedule tasks│gs │[scheduling] │
├─────────────┼────────────────────────────────────────────────────────┼─────────────────────┼───────┼───────────────┤
│config-client│https://github.com/rd-1-2022/rpt-config-client │Using the Config │gs │[config] │
│ │ │Client library │ │ │
├─────────────┼────────────────────────────────────────────────────────┼─────────────────────┼───────┼───────────────┤
│eureka │https://github.com/rd-1-2022/eureka │Spring Cloud Eureka │gs │[cloud, eureka]│
│ │ │Server │ │ │
├─────────────┼────────────────────────────────────────────────────────┼─────────────────────┼───────┼───────────────┤
│graphql │https://github.com/rd-1-2022/rpt-spring-graphql │Spring GraphQL │gs │[graphql] │
└─────────────┴────────────────────────────────────────────────────────┴─────────────────────┴───────┴───────────────┘
Spring Data JPA を使用する新しいプロジェクトを作成するには、次のコマンドを実行します。
spring boot new my-jpa jpa
このコマンドは、ソースコードリポジトリ URL: github.com/rd-1-2022/rpt-spring-data-jpa (英語)
のアプリケーションを使用します。
プロジェクトの名前を spring boot add コマンドの引数として使用することもできます。 |
URL による作成
プロジェクトを Spring CLI に追加して短い名前で参照する代わりに、プロジェクトのソースリポジトリの URL を直接使用できます。
例: Spring JPA プロジェクトを作成するには、次のコマンドを使用できます。
spring boot new my-jpa https://github.com/rd-1-2022/rpt-spring-data-jpa
オプション
spring boot new
コマンドには次のオプションがあり、次のコマンドを実行すると確認できます。
spring boot new --help
このコマンドでは次の出力が表示されます。
NAME
boot new - Create a new Spring Boot project from an existing project
SYNOPSIS
boot new --from String --name String --group-id String --artifact-id String --version String --description String --package-name String --path String --help
OPTIONS
--name String
Name of the new project
[Mandatory]
--from String
Create project from existing project name or URL
[Optional]
--group-id String
Group ID of the new project
[Optional]
--artifact-id String
Artifact ID of the new project
[Optional]
--version String
Version of the new project
[Optional]
--description String
Description of the new project
[Optional]
--package-name String
Package name for the new project
[Optional]
--path String
Path to run the command in, most of the time this is not necessary to specify and the default value is the current working directory.
[Optional]
--help or -h
help for boot new
[Optional]
オプションとデフォルト値
--name
オプションのみを指定すると、artifactId
はデフォルトで --name
オプションの値になります。次の例を考えてみましょう。
spring boot new --name myapp
Cloning project from https://github.com/rd-1-2022/rest-service
Created project in directory 'myapp'
生成された pom.xml
では、名前 (myapp
) がプロジェクトの artifactId
および name
として使用されます。
<groupId>com.example</groupId>
<artifactId>myapp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>myapp</name>
<description>RESTful web application</description>
--groupid
オプションを追加すると、groupId
タグの値だけでなくパッケージ名も変更されます。新しいパッケージ名へのプロジェクトのリファクタリングが実行されます。次の例を考えてみましょう。
$ spring boot new --name myapp --group-id com.xkcd
Cloning project from https://github.com/rd-1-2022/rest-service
Refactoring package to com.xkcd.myapp
Created project in directory 'myapp'
生成された pom.xml
には次のコンテンツが含まれます。
<groupId>com.xkcd</groupId>
<artifactId>myapp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>myapp</name>
<description>RESTful web application</description>
プロジェクトのディレクトリ構造は次のとおりです。
$ tree myapp/
myapp/
├── LICENSE
├── mvnw
├── mvnw.cmd
├── pom.xml
├── README.adoc
└── src
├── main
│ └── java
│ └── com
│ └── xkcd
│ └── myapp
│ ├── Application.java
│ └── greeting
│ ├── GreetingController.java
│ └── Greeting.java
└── test
└── java
└── com
└── xkcd
└── myapp
└── greeting
└── GreetingControllerTests.java