Maven 是Apache下的一個純Java開發的開源項目,也是當下非常流行的一個項目管理構建工具,同類軟件還包括有Gradle,Ant…
Maven基於項目對象模型(POM)的概念,爲Java項目提供了非常強大的項目生命週期管理和依賴管理。在使用Maven創建項目的同時,Maven也默認提供了標準的項目目錄結構,秉着約定大於配置的原則爲項目開發制定了統一的規則。
Maven倉庫:
在maven中有存在着幾個倉庫的概念:本地倉庫,遠程倉庫,私服倉庫,中央倉庫,
在我們使用的maven依賴第三方jar時,maven 會先去檢查我們的本地倉庫有沒有這個Jar包,如果有的話直接引用,如果沒有的話就需要到遠程中央倉庫去下載了,如果配置了私服倉庫的話,會去私服上找,找到的話會會直接下載到本地倉庫,方便我們下次直接使用。沒有的話由私服倉庫到互聯網遠程倉庫上下載
- 本地倉庫:保存從遠程倉庫下載下來的jar包,避免下次重複下載(緩存的概念)
- 遠程倉庫:存儲第三方開源項目的maven倉庫,可以是公網上的,也可以是局域網內的。
- 私服:在公司局域網環境下搭建的Maven遠程倉庫,工程師可以連接到私服將自己的項目打包發佈到上面,也可以直接從私服上下載自己想要依賴的jar包,如果私服上沒有的話,那麼私服就會從中央倉庫去下載
- 中央倉庫:maven核心團隊自己維護的遠程倉庫地址,存儲了全世界大部分的開源項目,服務於整個互聯網
依賴管理
要清楚依賴管理就要先知道有關依賴的定義,依賴就是一個項目需要用到某些第三方的jar包才能正常運行,那就可以說這個項目依賴了那些第三方的jar包,在日常的Java項目開發中我們會用到很多很多的第三方jar包,Spring,Mybatis等等 它們之間的關係就可以用依賴來形容。
Maven提供的依賴管理功能就是爲了對這些第三方的Jar包進行一個規範化的管理。
在未使用maven時我們用到第三方jar只能從網絡上手動下載,拷貝,這樣做的問題有很多,一個是jar包不好找,另一個就是項目日積月累的jar包越來越多,jar包之間的版本問題就很讓人頭痛,要從一大堆jar包裏找到幾個衝突的確實不是那麼容易的事
而在使用了maven之後,我們就顯得輕鬆許多,需要哪一個jar包,只要將需要的jar包信息填寫到maven工程的POM文件中,maven就能自動的幫你去下載。
通過pom文件還能對jar包的版本進行統一的管理,版本衝突的問題似乎也沒那麼讓人難受了。
<?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.jlong</groupId>
<artifactId>mavendemo</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</dependency>
</dependencies>
</project>
如果要添加jar包依賴,直接在dependencies節點寫添加dependency,每一個dependency都代表着一個項目的座標信息,
通過它就可以準確的找到你要依賴的那個jar.
- groupId:項目名稱
- artifactId:依賴的模塊名
- version:想要依賴的jar包版本
項目構建
所謂的項目生命週期管理也就是項目構建,指的是一個項目從編寫源代碼到編譯、測試、運行、打包、部署、運行的過程。其中每一個階段都可以使用一個命令完成。
- 1、mvn compile 編譯,將Java 源程序編譯成 class 字節碼文件。
- 2、mvn test 測試,並生成測試報告
- 3、mvn clean 將以前編譯得到的舊的 class 字節碼文件刪除
- 4、mvn pakage 打包,動態 web工程打war包,Java工程打 jar 包。
- 5、mvn install 將項目生成 jar 包放在倉庫中,以便別的模塊調用
Maven其他常用命令:
- 跳過測試:-Dmaven.test.skip(=true)
- 指定端口:-Dmaven.tomcat.port=8080
- 忽略測試失敗:-Dmaven.test.failure.ignore=true
當然,如果你的其它關聯項目有過更新的話,一定要在項目根目錄下運行mvn clean install來執行更新,再運行mvn
tomcat:run使改動生效.
maven工程目錄規定