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
- Springboot 引入本地 jar 包方式Spring BootJAR
- Maven 專案引入本地 jar 包方法MavenJAR
- 面試官:說說SpringBoot為什麼可以使用Jar包啟動?面試Spring BootJAR
- 為什麼?為什麼?Java處理排序後的陣列比沒有排序的快?想過沒有?Java排序陣列
- java打jar包的maven方式JavaJARMaven
- 【SpringBoot】服務 Jar 包的啟動過程原理Spring BootJAR
- 黑猴子的家:Maven 統一管理目標jar包的版本MavenJAR
- Maven專案打jar包MavenJAR
- maven 工程匯入jar包MavenJAR
- IntelliJ IDEA 如何引入本地 jar 包IntelliJIdeaJAR
- 有沒有好用Excel包,可以透過job的方式寫入資料Excel
- Maven打包springboot框架的可執行的jarMavenSpring Boot框架JAR
- 《《《maven倉庫下載jar包MavenJAR
- 你有沒有想過: 為什麼Java中String是不可變的?Java
- 檢視JAR包的JDK版本JARJDK
- 為什麼Hook沒有ErrorBoundary?HookErrorORB
- 《SpringBoot篇:002》《SpringBoot的三種啟動方式:main、Maven、jar》Spring BootAIMavenJAR
- 新增jar包到本地Maven倉庫JARMaven
- MySQL Connectors為什麼沒有javaMySqlJava
- OptionalInt為什麼沒有ofNullable()方法Null
- Twitter為什麼沒有當機?
- maven引入本地jar,部署到伺服器上找不到MavenJAR伺服器
- JDK安裝後 沒有tools.jar 和dt.jar包的解決辦法JDKJAR
- 為什麼js會有閉包JS
- Springboot 獲取jar包中的檔案Spring BootJAR
- eclipse 手動新增jar包到maven庫EclipseJARMaven
- 從Maven專案中獲取Jar包MavenJAR
- maven安裝jar包到本地倉庫MavenJAR
- 釋出jar包到maven中央倉庫JARMaven
- idea maven update下載未下載好的jar包IdeaMavenJAR
- SlimFast Maven外掛:HubSpot避免SpringBoot肥胖巨大JAR的方法ASTMavenSpring BootJAR
- spark 2.1.0 standalone模式配置&&打包jar包透過spark-submit提交Spark模式JARMIT
- 為什麼我沒有收到贈送的流量
- Maven Idea檢視解決jar包衝突MavenIdeaJAR
- 如何將JAR包釋出到Maven中央倉庫?JARMaven