创建新项目
这spring boot new
命令使创建 Spring Boot 应用程序变得容易。
此命令从现有功能齐全的 Spring Boot 应用程序的源代码存储库中复制内容以创建新项目。
要开始使用,请指定--name
选项,该选项使用测试创建基本的 RESTful Web 应用程序。
您还可以使用--from
选项来创建具有不同功能的项目,例如 Spring Data JPA 或 Spring Cloud Stream。
对于进一步的自定义,您可以灵活地指定各种选项(例如--group
,--artifact-id
和--version
) 以及--package-name
和--description
.
如果您提供--package-name
,则在克隆源代码存储库后,代码将进行重构。
以下部分提供了每个主题的详细说明。
有关向现有应用程序添加其他代码的更多信息,请参见 spring boot add 和 User Defined Commands。
快速开始
要在新目录中快速创建简单的 Web 应用程序,请运行以下命令:
spring boot new my-app
cd my-app
./mnvw spring-boot:run
这会在my-app
目录。
这--name
option 在本例中按位置传递,相当于spring boot new --name my-app
.
如果您希望在当前工作目录中创建项目,请指定.
作为名称:
mkdir my-new-app
cd my-new-app
spring boot new .
./mvnw spring-boot:run
要创建具有不同功能的应用程序,请使用选项--from
在spring boot new my-app
命令。因为--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 创建
您可以直接使用项目源存储库的 URL,而不是将项目添加到 Spring CLI 中以使用短名称引用它。
例如,要创建 Spring JPA 项目,可以使用以下命令:
spring boot new my-jpa https://github.com/rd-1-2022/rpt-spring-data-jpa
选项
这spring boot new
command 采用以下选项,您可以通过运行以下命令来查看这些选项:
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