此版本仍在开发中,尚未视为稳定版。如需最新稳定版本,请使用 Spring Boot 4.0.4spring-doc.cadn.net.cn

使用 Maven 运行您的应用程序

该插件包含一个 run 目标(goal),可用于从命令行启动您的应用程序,如下例所示:spring-doc.cadn.net.cn

$ mvn spring-boot:run

可以使用 arguments 参数指定应用程序参数,更多详情请参见使用应用程序参数spring-doc.cadn.net.cn

应用程序在分叉(forked)的进程中执行,因此在命令行上设置的属性不会影响该应用程序。 如果需要指定某些 JVM 参数(例如用于调试目的),可以使用 jvmArguments 参数,更多详情请参见调试应用程序。 此外,还明确支持系统属性环境变量spring-doc.cadn.net.cn

由于启用 profile 非常常见,因此提供了一个专用的 profiles 属性,作为 -Dspring-boot.run.jvmArguments="-Dspring.profiles.active=dev" 的快捷方式,参见指定激活的 profilesspring-doc.cadn.net.cn

Spring Boot devtools 是一个模块,用于在开发 Spring Boot 应用程序时提升开发阶段的体验。 要启用它,只需将以下依赖项添加到您的项目中:spring-doc.cadn.net.cn

<dependencies>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-devtools</artifactId>
		<optional>true</optional>
	</dependency>
</dependencies>

devtools 运行时,它会在你重新编译应用程序时检测到更改,并自动刷新应用。 这不仅适用于资源文件,也适用于代码。 它还提供了一个 LiveReload 服务器,以便在内容发生更改时自动触发浏览器刷新。spring-doc.cadn.net.cn

Devtools 也可以配置为仅在静态资源发生更改时刷新浏览器(并忽略代码中的任何更改)。 只需在您的项目中包含以下属性即可:spring-doc.cadn.net.cn

spring.devtools.remote.restart.enabled=false

devtools 出现之前,该插件默认支持资源的热刷新,但现在已禁用此功能,转而采用上述描述的解决方案。 您可以通过配置项目随时恢复该功能:spring-doc.cadn.net.cn

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<addResources>true</addResources>
				</configuration>
			</plugin>
		</plugins>
	</build>

当启用 addResources 时,在运行应用程序时,任何 src/main/resources 目录都会被添加到应用程序的类路径中,并且会移除在编译输出的 classes 目录中发现的重复资源。 这使得资源可以热刷新,在开发 Web 应用程序时非常有用。 例如,你可以直接修改 HTML、CSS 或 JavaScript 文件,并立即看到更改效果,而无需重新编译应用程序。 这也是一种很有帮助的方式,可以让前端开发人员无需下载和安装 Java IDE 即可开展工作。spring-doc.cadn.net.cn

使用此功能的一个副作用是,构建时的资源过滤将无法生效。

为了与 repackage 目标保持一致,run 目标会以这样的方式构建类路径:在插件配置中被排除的任何依赖项也会从类路径中排除。 有关更多详情,请参阅专门的示例spring-doc.cadn.net.cn

有时运行应用程序的测试变体很有用。 例如,如果您想在开发阶段使用 Testcontainers或利用某些测试桩(stubs)。 为此,请使用 test-run 目标,它具备与 run 目标许多相同的功能和配置选项。spring-doc.cadn.net.cn

spring-boot:run

org.springframework.boot:spring-boot-maven-plugin:4.1.0-M3spring-doc.cadn.net.cn

在原位置运行应用程序。spring-doc.cadn.net.cn

必需参数

姓名 类型 默认

类目录spring-doc.cadn.net.cn

Filespring-doc.cadn.net.cn

${project.build.outputDirectory}spring-doc.cadn.net.cn

参数详情

addResources

直接将 Maven 资源添加到类路径中,这样就可以对资源进行实时原地编辑。重复的资源会从 target/classes 中移除,以防止在调用 ClassLoader.getResources() 时出现重复。建议您考虑将 spring-boot-devtools 添加到项目中,因为它不仅提供此功能,还包含许多其他特性。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

addResourcesspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

booleanspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

falsespring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.run.addResourcesspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.0.0spring-doc.cadn.net.cn

additionalClasspathElements

应添加到类路径中的额外类路径元素。一个元素可以是包含类和资源的目录,也可以是一个 JAR 文件。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

additionalClasspathElementsspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.lang.String[]spring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.run.additional-classpath-elementsspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

3.2.0spring-doc.cadn.net.cn

classesDirectory

包含用于运行应用程序的类和资源文件的目录。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

classesDirectoryspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.io.Filespring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

${project.build.outputDirectory}spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.0.0spring-doc.cadn.net.cn

commandlineArguments

应传递给应用程序的命令行参数。使用空格分隔多个参数,并确保将包含多个值的参数用引号括起来。当指定此选项时,其优先级高于 #argumentsspring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

commandlineArgumentsspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.lang.Stringspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.run.argumentsspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

2.2.3spring-doc.cadn.net.cn

environmentVariables

应与用于运行应用程序的派生进程关联的环境变量列表。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

environmentVariablesspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.util.Mapspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

2.1.0spring-doc.cadn.net.cn

excludeGroupIds

要排除的 groupId 名称的逗号分隔列表(精确匹配)。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

excludeGroupIdsspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.lang.Stringspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.excludeGroupIdsspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.1.0spring-doc.cadn.net.cn

excludes

要排除的构件定义集合。Exclude 元素定义了必需的 groupIdartifactId 组件,以及一个可选的 classifier 组件。当将其配置为属性时,值应以逗号分隔,各组件之间用冒号分隔: groupId:artifactId,groupId:artifactId:classifierspring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

excludesspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.util.Listspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.excludesspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.1.0spring-doc.cadn.net.cn

includes

要包含的构件定义集合。Include 元素定义了必需的 groupIdartifactId 组件,以及一个可选的 classifier 组件。当配置为属性时,值应以逗号分隔,各组件之间用冒号分隔: groupId:artifactId,groupId:artifactId:classifierspring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

includesspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.util.Listspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.includesspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.2.0spring-doc.cadn.net.cn

jvmArguments

应与用于运行应用程序的派生进程关联的 JVM 参数。在命令行中,请确保将多个值用引号括起来。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

jvmArgumentsspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.lang.Stringspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.run.jvmArgumentsspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.1.0spring-doc.cadn.net.cn

mainClass

主类的名称。如果未指定,则将使用找到的第一个包含 'main' 方法的已编译类。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

mainClassspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.lang.Stringspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.run.main-classspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.0.0spring-doc.cadn.net.cn

noverify

用于标识该代理需要使用 -noverify 参数。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

noverifyspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

booleanspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.run.noverifyspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.0.0spring-doc.cadn.net.cn

profiles

要激活的 Spring 配置文件。这是指定 'spring.profiles.active' 参数的便捷快捷方式。在命令行中,请使用逗号分隔多个配置文件。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

profilesspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.lang.String[]spring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.run.profilesspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.3.0spring-doc.cadn.net.cn

systemPropertyVariables

要传递给进程的 JVM 系统属性列表。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

systemPropertyVariablesspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.util.Mapspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

2.1.0spring-doc.cadn.net.cn

useTestClasspath

运行时包含测试类路径的标志。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

useTestClasspathspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

booleanspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

falsespring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.run.useTestClasspathspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.3.0spring-doc.cadn.net.cn

workingDirectory

应用程序使用的当前工作目录。如果未指定,则将使用 basedir。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

workingDirectoryspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.io.Filespring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.run.workingDirectoryspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.5.0spring-doc.cadn.net.cn

spring-boot:test-run

org.springframework.boot:spring-boot-maven-plugin:4.1.0-M3spring-doc.cadn.net.cn

使用测试运行时类路径在原地运行应用程序。用于启动应用程序的主类按以下顺序确定:首先,如果已配置主类,则使用该主类;其次,如果测试类目录中存在主类,则使用该主类;最后,如果类目录中存在主类,则使用该主类。spring-doc.cadn.net.cn

必需参数

姓名 类型 默认

类目录spring-doc.cadn.net.cn

Filespring-doc.cadn.net.cn

${project.build.outputDirectory}spring-doc.cadn.net.cn

testClassesDirectoryspring-doc.cadn.net.cn

Filespring-doc.cadn.net.cn

${project.build.testOutputDirectory}spring-doc.cadn.net.cn

参数详情

addResources

直接将 Maven 资源添加到类路径中,这样就可以对资源进行实时原地编辑。重复的资源会从 target/classes 中移除,以防止在调用 ClassLoader.getResources() 时出现重复。建议您考虑将 spring-boot-devtools 添加到项目中,因为它不仅提供此功能,还包含许多其他特性。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

addResourcesspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

booleanspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

falsespring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.run.addResourcesspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.0.0spring-doc.cadn.net.cn

additionalClasspathElements

应添加到类路径中的额外类路径元素。一个元素可以是包含类和资源的目录,也可以是一个 JAR 文件。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

additionalClasspathElementsspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.lang.String[]spring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.run.additional-classpath-elementsspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

3.2.0spring-doc.cadn.net.cn

classesDirectory

包含用于运行应用程序的类和资源文件的目录。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

classesDirectoryspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.io.Filespring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

${project.build.outputDirectory}spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.0.0spring-doc.cadn.net.cn

commandlineArguments

应传递给应用程序的命令行参数。使用空格分隔多个参数,并确保将包含多个值的参数用引号括起来。当指定此选项时,其优先级高于 #argumentsspring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

commandlineArgumentsspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.lang.Stringspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.run.argumentsspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

2.2.3spring-doc.cadn.net.cn

environmentVariables

应与用于运行应用程序的派生进程关联的环境变量列表。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

environmentVariablesspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.util.Mapspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

2.1.0spring-doc.cadn.net.cn

excludeGroupIds

要排除的 groupId 名称的逗号分隔列表(精确匹配)。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

excludeGroupIdsspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.lang.Stringspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.excludeGroupIdsspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.1.0spring-doc.cadn.net.cn

excludes

要排除的构件定义集合。Exclude 元素定义了必需的 groupIdartifactId 组件,以及一个可选的 classifier 组件。当将其配置为属性时,值应以逗号分隔,各组件之间用冒号分隔: groupId:artifactId,groupId:artifactId:classifierspring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

excludesspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.util.Listspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.excludesspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.1.0spring-doc.cadn.net.cn

includes

要包含的构件定义集合。Include 元素定义了必需的 groupIdartifactId 组件,以及一个可选的 classifier 组件。当配置为属性时,值应以逗号分隔,各组件之间用冒号分隔: groupId:artifactId,groupId:artifactId:classifierspring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

includesspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.util.Listspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.includesspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.2.0spring-doc.cadn.net.cn

jvmArguments

应与用于运行应用程序的派生进程关联的 JVM 参数。在命令行中,请确保将多个值用引号括起来。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

jvmArgumentsspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.lang.Stringspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.run.jvmArgumentsspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.1.0spring-doc.cadn.net.cn

mainClass

主类的名称。如果未指定,则将使用找到的第一个包含 'main' 方法的已编译类。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

mainClassspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.lang.Stringspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.run.main-classspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.0.0spring-doc.cadn.net.cn

noverify

用于标识该代理需要使用 -noverify 参数。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

noverifyspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

booleanspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.run.noverifyspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.0.0spring-doc.cadn.net.cn

optimizedLaunch

是否应优化 JVM 的启动。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

optimizedLaunchspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

booleanspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

truespring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.test-run.optimizedLaunchspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

profiles

要激活的 Spring 配置文件。这是指定 'spring.profiles.active' 参数的便捷快捷方式。在命令行中,请使用逗号分隔多个配置文件。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

profilesspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.lang.String[]spring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.run.profilesspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.3.0spring-doc.cadn.net.cn

systemPropertyVariables

要传递给进程的 JVM 系统属性列表。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

systemPropertyVariablesspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.util.Mapspring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

2.1.0spring-doc.cadn.net.cn

testClassesDirectory

包含用于运行应用程序的测试类和资源文件的目录。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

testClassesDirectoryspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.io.Filespring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

${project.build.testOutputDirectory}spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

workingDirectory

应用程序使用的当前工作目录。如果未指定,则将使用 basedir。spring-doc.cadn.net.cn

姓名spring-doc.cadn.net.cn

workingDirectoryspring-doc.cadn.net.cn

类型spring-doc.cadn.net.cn

java.io.Filespring-doc.cadn.net.cn

默认值spring-doc.cadn.net.cn

用户属性spring-doc.cadn.net.cn

spring-boot.run.workingDirectoryspring-doc.cadn.net.cn

Sincespring-doc.cadn.net.cn

1.5.0spring-doc.cadn.net.cn

<h1>示例</h1>

调试应用程序

runtest-run 目标会在一个独立的进程中运行您的应用程序。 如果您需要调试它,应添加必要的 JVM 参数以启用远程调试。 以下配置将使进程在端口 5005 上暂停,直到调试器连接为止:spring-doc.cadn.net.cn

<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>

这些参数也可以在命令行中指定:spring-doc.cadn.net.cn

$ mvn spring-boot:run -Dspring-boot.run.jvmArguments=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005

使用系统属性

可以使用 systemPropertyVariables 属性来指定系统属性。 以下示例将 property1 设置为 test,将 property2 设置为 42:spring-doc.cadn.net.cn

<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>

如果该值为空或未定义(即 <my-property/),系统属性将被设置为一个空字符串作为其值。 Maven 会自动去除 pom 文件中指定的值的首尾空白字符,因此无法通过此机制指定一个需要以空格开头或结尾的系统属性:请考虑改用 jvmArgumentsspring-doc.cadn.net.cn

任何 String 类型的 Maven 变量都可以作为系统属性传递。 尝试传递任何其他类型的 Maven 变量(例如 ListURL 变量)将导致变量表达式被原样传递(不进行求值)。spring-doc.cadn.net.cn

jvmArguments 参数优先于使用上述机制定义的系统属性。 在以下示例中,property1 的值被 overriddenspring-doc.cadn.net.cn

$ mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dproperty1=overridden"

使用环境变量

可以使用 environmentVariables 属性来指定环境变量。 以下示例设置了 'ENV1'、'ENV2'、'ENV3'、'ENV4' 环境变量:spring-doc.cadn.net.cn

<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/),则环境变量将被设置为空字符串作为其值。 Maven 会自动去除 pom 文件中指定的值的首尾空白字符,因此无法指定一个需要以空格开头或结尾的环境变量。spring-doc.cadn.net.cn

任何 String 类型的 Maven 变量都可以作为系统属性传递。 尝试传递任何其他类型的 Maven 变量(例如 ListURL 变量)将导致变量表达式被原样传递(不进行求值)。spring-doc.cadn.net.cn

通过这种方式定义的环境变量优先于现有值。spring-doc.cadn.net.cn

使用应用程序参数

可以使用 arguments 属性指定应用程序参数。 以下示例设置了两个参数:property1property2=42spring-doc.cadn.net.cn

<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>

在命令行中,参数之间使用空格分隔,方式与 jvmArguments 相同。 如果某个参数包含空格,请务必用引号将其括起来。 在下面的示例中,有两个参数可用:property1property2=Hello Worldspring-doc.cadn.net.cn

$ mvn spring-boot:run -Dspring-boot.run.arguments="property1 'property2=Hello World'"

指定激活的配置文件

可以使用 profiles 参数来指定特定应用程序所使用的激活配置文件。spring-doc.cadn.net.cn

以下配置启用了 localdev 配置文件:spring-doc.cadn.net.cn

<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>

也可以在命令行中指定要启用的配置文件,请确保使用逗号将它们分隔开,如下例所示:spring-doc.cadn.net.cn

$ mvn spring-boot:run -Dspring-boot.run.profiles=local,dev