from:https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-build-systems.html
Maven users can inherit from the spring-boot-starter-parent
project to obtain sensibledefaults. The parent project provides the following features:
- Java 1.6 as the default compiler level.
- UTF-8 source encoding.
- A Dependency Management section, allowing you toomit
<version>
tags for common dependencies, inherited from thespring-boot-dependencies
POM. - Sensible resource filtering.
- Sensible plugin configuration (exec plugin,surefire,Git commit ID,shade).
- Sensible resource filtering for
application.properties
andapplication.yml
On the last point: since the default config files acceptSpring style placeholders (${…}
) the Maven filtering is changed touse@..@
placeholders (you can override that with a Maven propertyresource.delimiter
).
你如果已经继承了你自己定义的POM,你可以用依赖来引用它,如下:
Not everyone likes inheriting from the spring-boot-starter-parent
POM. You may have yourown corporate standard parent that you need to use, or you may just prefer to explicitlydeclare all your Maven configuration.
If you don’t want to use the spring-boot-starter-parent
, you can still keep the benefitof the dependency management (but not the plugin management) by using a scope=import
dependency:
<dependencyManagement> <dependencies> <dependency> <!-- Import dependency management from Spring Boot --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.3.4.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
That setup does not allow you to override individual dependencies using a property asexplained above. To achieve the same result, you’d need to add an entry in thedependencyManagement
of your project before the spring-boot-dependencies
entry. For instance, to upgrade to another Spring Data release train you’d add thefollowing to your pom.xml
.
<dependencyManagement> <dependencies> <!-- Override Spring Data release train provided by Spring Boot --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-releasetrain</artifactId> <version>Fowler-SR2</version> <scope>import</scope> <type>pom</type> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.3.4.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>