Maven可以解決的問題
在開發中經常需要依賴第三方的包,包與包之間存在的依賴關係,版本間的兼容性問題,有時還需要將舊的jar包升級成新的版本,稍微一想就知道開發人員要花費多少精力解決這些問題。
Maven的作用
- 統一開發規範和工具
- 統一管理jar包
Maven項目管理工具(依賴管理)
1、POM工程對象模型
Pom.xml是Maven工程的核心配置文件,可以通過一小段描述信息來管理項目的構建。
項目的配置信息,創建項目時填寫,自動生成
<!-- 項目所在組,一般是阻止或公司 -->
<groupId>cn.sdut</groupId>
<!-- 當前項目在組中的唯一ID -->
<artifactId>maven</artifactId>
<!-- 表示版本,SNAPSHOT表示快照,表示此項目還在開發中,不穩定 -->
<version>0.0.1-SNAPSHOT</version>
<!-- 打包類型 -->
<packaging>jar</packaging>
maven使用groupId,artifactId,version三個元素,唯一的標識這個項目。
- grounpId:項目所在組,一般是組織或者公司(groupId 和實際項目不一定是一一對應的)
- artifactId:當前項目在組中的唯一id
- version:版本
Dependency 配置依賴
我們在dependency裏用groupId,artifactId,version三個元素來管理我們需要用到的jar包,填好後保存即可自動下載。
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
依賴範圍 scope
- compile:編譯,測試,運行都有效,默認的選擇
- test:測試有效,例如junit
- provided:編譯,測試有效,例如servlet,運行時容器會提供實現
- runtime:運行和測試有效,例如jdbc,編譯時只需相應的接口,測試和運行時才需要具體的實現
- system:編譯,測試有效。例如本地的,Maven倉庫之外的類庫文件。
Maven倉庫(Repository)
- 公用倉庫也叫中央倉庫,由Maven社區提供和管理的,裏面包含了大量的常用類庫。
- 本地倉庫,用來存儲下載下來的jar包的路徑,一般%user_home%/.m2/repository路徑下。
- 內部遠程倉庫/內部中心倉庫,使用本公司搭建的一個類似於中央倉庫的一個倉庫,僅限於公司內部人員使用。
- 項目配置的依賴首先去中央倉庫找,找到了就自動下載到本地倉庫,項目就可以自動使用。如果中央倉庫沒有,本地倉庫也沒用,則項目會停止構建,拋出錯誤信息到控制檯,爲了避免這種異常,Maven提供了內部遠程倉庫的配置。
參考:https://www.cnblogs.com/best/p/9676515.html#_label0