- Spring Boot趣味實戰課
- 劉水鏡
- 755字
- 2022-08-16 19:35:28
2.2 大管家Maven
本書選擇Maven作為Jar包管理及構建工具。原因很簡單,它擁有領先的市場份額。圖2-1展示了來自《2020 JVM生態報告》的數據。

圖2-1 構建工具市場份額
2.2.1 pom文件
POM(Project Object Model,項目對象模型)是我們使用Maven的核心。pom文件使用XML語言編寫,定義了項目的基本信息,用于描述項目如何構建,聲明項目依賴等。
pom文件示例:



以上是一個pom文件示例,接下來我們一起學習幾個常用的概念。
2.2.2 常用概念
坐標
坐標是Maven中非常重要的概念。我們在初中數學里就已經學習過這個概念,例如:(0,7)代表Y軸上距離原點7個單位的一個點。而我們在地理課里也學習過由經/緯度組成的坐標,例如:(東經116°23'51",北緯39°54'31")是天安門的坐標。那么Maven中的坐標是什么樣子的呢?Maven中的坐標由以下3部分構成:
· groupId
· artifactId
· version
groupId代表組信息,通常是公司或者組織;artifactId是項目在組內的唯一標識;version就很簡單了,代表項目的版本。我們通過一個具體示例來進一步理解:

上面這個坐標代表Spring的Web模塊,其版本為5.2.10.RELEASE。
在Java中,可以說“萬物皆對象”,而在Maven中,則可以說“萬物皆坐標”。一切Jar包或pom文件都可以用一個唯一的坐標來標識。
依賴
我們可以通過坐標來聲明一個Jar包或pom文件(War包不能被引用,這里不討論),還可以通過坐標來引用其他的Jar包或pom文件。依賴管理是Maven最重要的功能之一,項目依賴的所有Jar都需要通過如下格式放到<dependencies>標簽下:

繼承
Maven中的繼承和Java中的繼承類似,都通過<parent>標簽來標明繼承關系。繼承后,子工程會將父工程的相關特性應用到子工程中。例如:

構建
構建(Build),也就是我們所說的編譯打包的過程,是Maven另外一個重要的功能,用于將我們的工程打成Jar包或War包。
Maven是通過集成插件的方式來實現構建功能的,可以根據不同的構建需求選擇不同的插件。在Spring Boot項目中,默認使用spring-boot-maven-plugin插件進行構建,因為Spring Boot需要將工程打包成可執行的Jar文件,所以需要使用自己定制的構建插件。例如:
