Maven 基本的認識
阿新 • • 發佈:2019-01-11
Maven 基本的認識
1. 什麼是Maven?
在平時開發中,經常遇到某個jar包,我在程式碼層已經Import 和@Automation了,編譯器還是提醒你某個jar包找不到,往往這時來個mvn install 問題就解決了。可想而知,Maven 是幫助我們開發者管理Jar包的工具
2. Maven基本命令
2.1 程式碼的編譯
mvn compile
同樣的,這裡把專案jar程式碼編譯成.class檔案到專案的target資料夾
2.2 安裝包
mvn install
編譯好的.class檔案,maven 自動地安裝到本地Repository,即maven 的倉庫。為什麼要安裝到倉庫,這樣的作用是什麼?
- 方便Maven工具快速找到相關的jar 包,引入專案裡
- 集中管理專案的jar包
2.3 清理目標檔案
mvn clean
maven 只對專案中的target 中的檔案清理,原先的安裝的檔案不受影響。
3. Maven POM
3.1 什麼是POM?
POM代表專案物件模型。它是 Maven 中工作的基本單位,這是一個 XML 檔案。它始終儲存在該專案基本目錄中的 pom.xml
檔案。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.lollipop.api</groupId> <artifactId>ali</artifactId> <version>1.0-SNAPSHOT</version> </project>
3.2 POM中裝包型別
- 裝包的屬性
<packaging></packaging>
- 裝包型別
- pom 型別,所有的父級專案的packaging都為pom
- jar 型別,預設是jar型別,如果不作配置,maven會將該專案打成jar包,作為內部呼叫或者是作服務使用
- war 型別,如果是需要部署的專案,則需要打包成war型別
每個pom.xml 檔案必需有project 、groupId、artifactId、version。
| 元素 | 說明 |
|:-------:|:----:|
| project | 專案根目錄 |
| groupId | 公司或組織域倒序+專案 |
| artifactId | 模組名稱 |
| version | 模組版本號 |
4. Maven 依賴
4.1依賴的範圍
4.1.1 範圍標籤
<dependencies>
<dependency>
<groupId>xxx.xx.x</groupId>
<artifactId>xxx</artifactId>
<version>4.0</version>
<scop>xxx</scop> #範圍標籤
</dependency>
</dependencies>
4.1.2 範圍標籤作用域值
- compile 範圍依賴
- 對程式編譯和打包期,該作用域有效
- test 範圍依賴
- 對測試程式編譯和執行期,該作用域有效
- procided 範圍依賴
除打包和部署期無效後,其他期都有效
4.2 依賴的繼承
在專案裡,如果多個子模組需要用到同個依賴包,我們可以提取它們到父 POM,子POM僅僅簡單的引用
父pom.xml
hewlll
子pom.xml
<project>
...
<dependencies>
<dependency>
<groupId>group-c</groupId>
<artifactId>artifact-b</artifactId>
<!-- This is not a jar dependency, so we must specify type. -->
<type>war</type>
</dependency>
<dependency>
<groupId>group-a</groupId>
<artifactId>artifact-b</artifactId>
<!-- This is not a jar dependency, so we must specify type. -->
<type>bar</type>
</dependency>
</dependencies>
</project>
4.3 規範依賴版號
這裡就不詳細說明了。主要在父級pom裡頭加入版本號,子級pom簡單引入就可以了
有很多地方說的不好,可以去Maven官網看文件, 建議多動手熟悉Maven的知識