惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Latest
Security Latest
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Stack Overflow Blog
Stack Overflow Blog
WordPress大学
WordPress大学
N
Netflix TechBlog - Medium
GbyAI
GbyAI
云风的 BLOG
云风的 BLOG
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
宝玉的分享
宝玉的分享
博客园 - 【当耐特】
C
Cyber Attacks, Cyber Crime and Cyber Security
雷峰网
雷峰网
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Threat Research - Cisco Blogs
NISL@THU
NISL@THU
Spread Privacy
Spread Privacy
P
Proofpoint News Feed
J
Java Code Geeks
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
MyScale Blog
MyScale Blog
T
Tor Project blog
P
Proofpoint News Feed
C
CERT Recently Published Vulnerability Notes
P
Privacy & Cybersecurity Law Blog
MongoDB | Blog
MongoDB | Blog
Simon Willison's Weblog
Simon Willison's Weblog
C
Cybersecurity and Infrastructure Security Agency CISA
L
LINUX DO - 热门话题
小众软件
小众软件
G
GRAHAM CLULEY
P
Privacy International News Feed
AWS News Blog
AWS News Blog
Know Your Adversary
Know Your Adversary
P
Palo Alto Networks Blog
人人都是产品经理
人人都是产品经理
S
Schneier on Security
Scott Helme
Scott Helme
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
B
Blog RSS Feed
T
The Exploit Database - CXSecurity.com
Recent Announcements
Recent Announcements
E
Exploit-DB.com RSS Feed
C
CXSECURITY Database RSS Feed - CXSecurity.com
U
Unit 42
The Register - Security
The Register - Security
S
Securelist
Martin Fowler
Martin Fowler
Project Zero
Project Zero
大猫的无限游戏
大猫的无限游戏
Cisco Talos Blog
Cisco Talos Blog

博客园 - 技术宅home

kali捕获wifi握手包 centos7安装mysql8 【继续教育】选准用好“三支一扶”人员,助力乡村振兴战略 【继续教育】深入学***在长三角一体化发展座谈会的重要讲话精神,推动长三角区域一体化和高质量发展 【继续教育】全球战“疫”斗争中的中国优势、 中国力量、中国担当、中国精神 【继续教育】民法典总则编解读 【继续教育】坚持创新在我国现代化建设全局中的核心地位,把科技自立自强作为国家发展的战略支撑 【继续教育】加快构建完整内需体系,形成国内国际双循环相互促进新格局 redis key过期提醒,实现订单自动取消 查看当前服务器中最占内存的程序 百度智能云之语音技术(自动播报语音) maven多环境IDEA启动报Do not use @ for indentation错误解决方法 StringRedisTemplate获取redis信息 MySQL规范 微信测试公众号手动发送模板消息 Docker 容器知识点 Docker 常用命令 Docker 镜像知识点 Centos离线下载Aria2 AriaNG bt-tracker自动更新
spring-boot-starter-parent 与 spring-boot-dependencies
技术宅home · 2019-04-08 · via 博客园 - 技术宅home

Spring Boot的每个发布版本都会规划它所支持的依赖项。实际上,你不用指定这些依赖项的版本号,因为Spring Boot都为你管理好了。当更新Spring Boot时,会相应的更新依赖。

Maven管理依赖

Maven用户可以继承spring-boot-starter-parent项目,来获取最佳依赖。这个父项目提供了以下几个功能:

  • 默认Java 1.6编译
  • UTF-8编码格式
  • 依赖管理部分,可让你对公共依赖省略version标签。继承自spring-boot-dependencies POM。
  • 良好的资源过滤
  • 良好的插件配置
  • 对于application.properties和application.yml包括profile-specific文件,良好的资源过滤

最后一点:因为默认配置文件接受Spring风格的占位符(${}),Maven过滤器换成了@...@占位符。(可以通过Maven属性resource.delimiter替换)

继承starter parent

配置继承spring-boot-starter-parent:

1 <parent>
2         <groupId>org.springframework.boot</groupId>
3         <artifactId>spring-boot-starter-parent</artifactId>
4         <version>2.1.3.RELEASE</version>
5         <relativePath/> <!-- lookup parent from repository -->
6 </parent>

只需要在这里指定Spring Boot的版本号。如果导入其他的starters,你可以完全省略版本号。

使用这个配置,你还可以通过property覆盖内部的依赖。例如,在pom.xml中升级Spring Data release train。

1 <properties>
2     <spring-data-releasetrain.version>Fowler-SR2</spring-data-releasetrain.version>
3 </properties>

可以通过spring-boot-dependencies pom,查看支持的属性列表。

不使用parent POM,配置Spring Boot

可能有人不喜欢继承spring-boot-starter-parent POM。你可能有自己的企业标准parent,或者你可能只是比较喜欢明确声明所有的Maven配置。

如果你不想使用spring-boot-starter-parent,你依然可以通过使用scope=import利用依赖管理的便利:

 1 <dependencyManagement>
 2      <dependencies>
 3         <dependency>
 4             <!-- Import dependency management from Spring Boot -->
 5             <groupId>org.springframework.boot</groupId>
 6             <artifactId>spring-boot-dependencies</artifactId>
 7             <version>2.1.3.RELEASE</version>
 8             <type>pom</type>
 9             <scope>import</scope>
10         </dependency>
11     </dependencies>
12 </dependencyManagement>

这种方式不能使用property的形式覆盖原始的依赖项。要达到同样的效果,需要在dependencyManagement里面的spring-boot-dependencies之前添加依赖的东西。例如,要升级Spring Data release train,pom.xml应该是这样的:

 1 <dependencyManagement>
 2     <dependencies>
 3         <!-- Override Spring Data release train provided by Spring Boot -->
 4         <dependency>
 5             <groupId>org.springframework.data</groupId>
 6             <artifactId>spring-data-releasetrain</artifactId>
 7             <version>Fowler-SR2</version>
 8             <scope>import</scope>
 9             <type>pom</type>
10         </dependency>
11         <dependency>
12             <groupId>org.springframework.boot</groupId>
13             <artifactId>spring-boot-dependencies</artifactId>
14             <version>2.1.3.RELEASE</version>
15             <type>pom</type>
16             <scope>import</scope>
17         </dependency>
18     </dependencies>
19 </dependencyManagement>