SpringBoot透過maven引入的jar包為什麼有的沒有版本號
之前學習maven知道,在透過maven引入jar包的時候,需要明確定義其座標元素groupId、artifactId、version、packaging、classfier,從而確認具體的jar包資訊,其中groupId、artifactId、version三要素一定不可缺失,可是有些POM中卻沒有引入包版本,卻可以正常執行,例如下圖,那麼是為什麼呢?
image
我們猜測肯定是有哪個地方有明確的包版本說明,要不然就違背了Maven的規則
其實在springboot的官方文件中也有具體解釋這個沒有設定包版本的原因,具體可看==>
接下來我們具體分析下其真正的原因
image
如上圖,可以看到spring-boot-starter-tomcat是依賴自spring-boot-starters父maven的,其dependency中並沒有明確的具體的jar包資訊
如下圖,再看spring-boot-starters包,其父maven是spring-boot-parent
image
如下圖spring-boot-parent的父pom是spring-boot-dependencies,看到這裡透過名字應該很清楚在spring-boot-dependencies中肯定包含了大部分預設的jar包版本約定
image
如下圖的spring-boot-dependencies,並沒有父POM
image
image
image
從上圖可以看出在spring-boot-dependencies中利用dependencyManagement管理了所有的jar包
現在也知道了spring-boot-starter-tomcat中的Tomcat版本是8.5.15
dependencyManagement 和 dependencys 有什麼區別麼?
主要的區別在於被dependencyManagement引入的jar包在子POM中不一定會引入,除非子類明確引入了才可以使用,而dependencys引入的jar包無論子POM是否有使用到都會引入進去的,這樣可以做到避免引入沒必要的jar包
作者:jwfy
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3034/viewspace-2811676/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Maven引入本地jar包MavenJAR
- 為什麼引入SpringBoot依賴不用加版本號Spring Boot
- 為什麼在SpringBoot+maven的專案中,所引入的依賴包可以不指定依賴的版本號?Spring BootMaven
- Maven構建引入本地jar包MavenJAR
- Maven 專案引入本地 jar 包方法MavenJAR
- Springboot 引入本地 jar 包方式Spring BootJAR
- 沒有工作經驗,沒有的究竟是什麼?
- 為什麼?為什麼?Java處理排序後的陣列比沒有排序的快?想過沒有?Java排序陣列
- 面試官:說說SpringBoot為什麼可以使用Jar包啟動?面試Spring BootJAR
- maven用變數的方法統一管理jar包版本Maven變數JAR
- java打jar包的maven方式JavaJARMaven
- 有沒有好用Excel包,可以透過job的方式寫入資料Excel
- 為什麼Hook沒有ErrorBoundary?HookErrorORB
- 為什麼Google沒有客服?Go
- 黑猴子的家:Maven 統一管理目標jar包的版本MavenJAR
- Maven專案打jar包MavenJAR
- maven 工程匯入jar包MavenJAR
- Eclipse引入jar包的三種方式EclipseJAR
- 你有沒有想過: 為什麼Java中String是不可變的?Java
- Twitter為什麼沒有當機?
- maven - 引用本地jar,進行jar包移動MavenJAR
- 用Maven快速生成帶有依賴的可執行jar包MavenJAR
- 為什麼js會有閉包JS
- 《《《maven倉庫下載jar包MavenJAR
- Spring Jar包因為JDK版本報錯SpringJARJDK
- 【SpringBoot】服務 Jar 包的啟動過程原理Spring BootJAR
- 檢視JAR包的JDK版本JARJDK
- MySQL Connectors為什麼沒有javaMySqlJava
- 為什麼Lisp沒有流行起來Lisp
- 360瀏覽器有的有審查元素,有的沒有,因為沒有用急速模式,而是ie模式瀏覽器模式
- 為什麼沒有好用的Android遊戲引擎?Android遊戲引擎
- 新增jar包到本地Maven倉庫JARMaven
- maven專案引進本地jar包MavenJAR
- IntelliJ IDEA 如何引入本地 jar 包IntelliJIdeaJAR
- java-maven生成可執行的 jar 包JavaMavenJAR
- JDK安裝後 沒有tools.jar 和dt.jar包的解決辦法JDKJAR
- IP有什麼用,可以透過IP查到對方什麼資訊!
- OptionalInt為什麼沒有ofNullable()方法Null