|
对于最新稳定版本,请使用Spring Boot 4.0.0! |
使用 Maven 运行您的应用程序
该插件包含一个运行目标,可用于从命令行启动你的应用程序,如下示例所示:
$ mvn spring-boot:run
应用参数可以通过以下方式来指定参数参数,详情请参见使用应用参数。
由于启用配置文件很常见,所以有专门的配置 文件提供快捷方式的物业-Dspring-boot.run.jvmArguments=“ -Dspring.profiles.active=dev”,参见“指定活跃配置文件”。
Spring靴开发工具是一个旨在提升开发时体验的模块,用于开发 Spring Boot 应用。
要启用它,只需在你的项目中添加以下依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
什么时候开发工具运行时,它会检测到你重新编译应用时的更改并自动刷新。
这不仅适用于资源,也适用于代码。
它还提供了一个LiveReload服务器,可以在内容变化时自动触发浏览器刷新。
开发工具还可以配置为只有在静态资源发生变化时刷新浏览器(并忽略代码中的任何变化)。 只需在项目中包含以下物业:
spring.devtools.remote.restart.enabled=false
在开发工具该插件默认支持资源热刷新,但现已被上述解决方案取代。
你可以通过配置项目随时恢复它:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<addResources>true</addResources>
</configuration>
</plugin>
</plugins>
</build>
什么时候addResources被启用,任意src/主/资源运行应用时,目录会被添加到应用的类路径中,且在类输出中发现的任何重复都会被删除。
这允许资源热刷新,在开发网页应用时非常有用。
例如,你可以处理HTML、CSS或JavaScript文件,立即看到修改内容,而无需重新编译你的应用程序。
这也是一种方便的前端开发人员无需下载和安装 Java IDE 即可工作的方式。
| 使用这个功能的副作用是,构建时对资源的过滤无法起作用。 |
为了与重新包装目标,执行Goal 构建类路径的方式是,插件配置中排除的任何依赖也会被排除在类路径之外。
更多细节,请参见专门的示例。
有时候运行一个测试版的应用很有用。
例如,如果你想在开发阶段使用 Testcontainers,或者使用一些测试存根。
使用该试运行目标,拥有许多相同的功能和配置选项执行为此目的。
Spring Boot:跑
org.springframework.boot:spring-boot-maven-plugin:3.3.13
在原地运行一个应用程序。
可选参数
| 名称 | 类型 | 默认值 |
|---|---|---|
|
|
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
|
|
|
||
|
|
|
|
||
|
|
|
|
参数细节
addResources
直接将 maven 资源添加到类路径中,这允许资源的现场编辑。重复的资源会从目标/职业以防止它们重复出现,如果ClassLoader.getResources()被叫去。请考虑添加Spring-boot-devtools而是你的项目,因为它提供了这个功能以及更多功能。
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
additionalClasspathElements
需要添加到类路径中的额外类路径元素。元素可以是包含类和资源的目录,也可以是 jar 文件。
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
classes目录
包含运行应用的类和资源文件的目录。
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
命令行参数
命令行的参数,应该传递给应用程序。用空格分隔多个参数,并确保在引号之间包裹多个值。在指定时,优先于#arguments.
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
environmentVariables
运行应用程序时应关联到用于运行应用的分支进程的环境变量列表。
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
exclusionGroupIds
逗号分隔的groupid名称列表,排除(完全匹配)。
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
排除
排除的工件定义集合。这排除元素定义了强制性组ID和artifactId(遗物ID组件和可选分类元件。当配置为属性时,值应以逗号分隔,并用冒号分隔:groupId:artifactId,groupId:artifactId:分类器
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
包括
包含工件定义的集合。这包括元素定义了强制性组ID和artifactId(遗物ID组件和可选分类元件。当配置为属性时,值应以逗号分隔,并用冒号分隔:groupId:artifactId,groupId:artifactId:分类器
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
jvm论证
JVM参数应与用于运行应用的分支进程关联。在命令行中,确保引号之间包裹多个值。
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
mainClass
主类的名字。如果未指定,将使用第一个编译类,包含“main”方法。
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
配置 文件
Spring轮廓要启动。方便快捷方式,只需指定“spring.profiles.active”参数。在命令行用逗号分隔多个配置文件。
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
systemPropertyVariables
传递给进程的JVM系统属性列表。
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
Spring Boot:测试运行
org.springframework.boot:spring-boot-maven-plugin:3.3.13
在原地运行一个应用,使用测试运行时的类路径。用于启动应用的主类确定如下:配置的主类(如有)。然后是测试类目录中的主类(如果有的话)。然后在类目录中找到主类(如果有的话)。
参数细节
addResources
直接将 maven 资源添加到类路径中,这允许资源的现场编辑。重复的资源会从目标/职业以防止它们重复出现,如果ClassLoader.getResources()被叫去。请考虑添加Spring-boot-devtools而是你的项目,因为它提供了这个功能以及更多功能。
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
additionalClasspathElements
需要添加到类路径中的额外类路径元素。元素可以是包含类和资源的目录,也可以是 jar 文件。
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
classes目录
包含运行应用的类和资源文件的目录。
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
命令行参数
命令行的参数,应该传递给应用程序。用空格分隔多个参数,并确保在引号之间包裹多个值。在指定时,优先于#arguments.
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
environmentVariables
运行应用程序时应关联到用于运行应用的分支进程的环境变量列表。
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
exclusionGroupIds
逗号分隔的groupid名称列表,排除(完全匹配)。
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
排除
排除的工件定义集合。这排除元素定义了强制性组ID和artifactId(遗物ID组件和可选分类元件。当配置为属性时,值应以逗号分隔,并用冒号分隔:groupId:artifactId,groupId:artifactId:分类器
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
包括
包含工件定义的集合。这包括元素定义了强制性组ID和artifactId(遗物ID组件和可选分类元件。当配置为属性时,值应以逗号分隔,并用冒号分隔:groupId:artifactId,groupId:artifactId:分类器
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
jvm论证
JVM参数应与用于运行应用的分支进程关联。在命令行中,确保引号之间包裹多个值。
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
mainClass
主类的名字。如果未指定,将使用第一个编译类,包含“main”方法。
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
配置 文件
Spring轮廓要启动。方便快捷方式,只需指定“spring.profiles.active”参数。在命令行用逗号分隔多个配置文件。
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
systemPropertyVariables
传递给进程的JVM系统属性列表。
名称 |
|
|---|---|
类型 |
|
默认值 |
|
用户属性 |
|
因为 |
|
例子
调试应用程序
这执行和试运行目标在分支进程中运行你的应用。
如果你需要调试,应该添加必要的JVM参数来启用远程调试。
以下配置暂停进程,直到调试器在5005端口加入:
<project>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<jvmArguments>
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005
</jvmArguments>
</configuration>
</plugin>
</plugins>
</build>
</project>
这些参数也可以在命令行中指定:
$ mvn spring-boot:run -Dspring-boot.run.jvmArguments=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005
使用系统属性
系统属性可以通过以下方式来指定systemPropertyVariables属性。
以下示例集合财产1自测试和财产2到42岁:
<project>
<build>
<properties>
<my.value>42</my.value>
</properties>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<property1>test</property1>
<property2>${my.value}</property2>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
</project>
如果值为空或未定义(即<我的财产/>),系统属性的值为空的 String。
Maven 会修剪 pom 中指定的值,因此无法通过这种机制指定一个必须以空格开头或结尾的系统属性:考虑使用jvm论证相反。
任何字符串类型的Maven变量都可以作为系统属性传递。
任何尝试传递任何其他Maven变量类型(例如a列表或者网址变量)会使变量表达式被字面传递(未评估)。
这jvm论证参数优先于上述机制定义的系统属性。
在以下例子中,值为财产1是重写:
$ mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dproperty1=overridden"
使用环境变量
环境变量可以通过以下方式指定environmentVariables属性。
以下示例设置了“ENV1”、“ENV2”、“ENV3”、“ENV4”的env变量:
<project>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<environmentVariables>
<ENV1>5000</ENV1>
<ENV2>Some Text</ENV2>
<ENV3/>
<ENV4></ENV4>
</environmentVariables>
</configuration>
</plugin>
</plugins>
</build>
</project>
如果值为空或未定义(即<MY_ENV/>),env 变量的值为空 String。
Maven 会修剪 pom 中指定的值,因此无法指定一个必须以空格开头或结尾的 env 变量。
任何字符串类型的Maven变量都可以作为系统属性传递。
任何尝试传递任何其他Maven变量类型(例如a列表或者网址变量)会使变量表达式被字面传递(未评估)。
以这种方式定义的环境变量优先于现有值。
应用参数的使用
应用参数可以通过以下方式来指定参数属性。
以下示例提出了两个论证:财产1和Property2=42:
<project>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<arguments>
<argument>property1</argument>
<argument>property2=${my.value}</argument>
</arguments>
</configuration>
</plugin>
</plugins>
</build>
</project>
在命令行中,参数之间以空格分隔的方式相同jvm论证是。
如果论元包含空格,务必引用。
在下面的例子中,有两个参数可用:财产1和property2=Hello World:
$ mvn spring-boot:run -Dspring-boot.run.arguments="property1 'property2=Hello World'"
指定活跃配置文件
特定应用的活跃配置文件可以通过以下方式指定配置 文件论点。
以下配置使得当地和开发配置 文件:
<project>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<profiles>
<profile>local</profile>
<profile>dev</profile>
</profiles>
</configuration>
</plugin>
</plugins>
</build>
</project>
启用的配置文件也可以在命令行中指定,务必用逗号分隔,如下示例所示:
$ mvn spring-boot:run -Dspring-boot.run.profiles=local,dev