https://docs.spring.io/spring-boot/docs/3.2.0/maven-plugin/reference/htmlsingle/#using
在开发Spring Boot应用时,一般会在pom.xml文件中继承spring-boot-starter-parent项目,例如:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.thb</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.1</version>
</parent>
<!--其它内容-->
</project>
spring-boot-starter-parent项目提供了合理的默认值,主要包含如下特性:
- Java 17作为默认的编译级别。
- UTF-8源文件编码
- 编译时带有
-parameters
- 有一个依赖管理段落,从
spring-boot-dependencies
POM中继承,管理公共的依赖版本。这允许你在自己的POM文件中省略掉依赖的<version>
。 - 一个
repackage
goal execution。 - 一个
native
profile,配置可以生成Native image的build。 - 合理的资源过滤(resource filtering)。
- 合理的插件配置。
- 对application.properties 和 application.yml合理的资源过滤,包含profile特定的文件(例如application-dev.properties 和 application-dev.yml)。
注意:因为application.properties 和 application.yml接受Spring样式的占位符(${…}
),Maven过滤改为使用@..@
占位符。你可以通过设置Maven的属性resource.delimiter
来覆盖默认设置。
注意:spring-boot-starter-parent
设置了maven.compiler.release
属性,该属性限制了--add-exports, --add-reads, 和 --patch-module
选项,如果它们修改系统模块的话。如果你需要使用使用这些选项,取消设置maven.compiler.release
:
<maven.compiler.release></maven.compiler.release>
然后配置source 和target 选项:
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>