Maven實現項目構建工具
1.Maven介紹
1.1Maven是什麼
Maven項目對象模型(POM),可以通過一小段描述信息來管理項目的構建,報告和文檔的項目管理工具軟件。
Maven 除瞭以程序構建能力為特色之外,還提供高級項目管理工具。由於 Maven 的缺省構建規則有較高的可重用性,所以常常用兩三行 Maven 構建腳本就可以構建簡單的項目。由於 Maven 的面向項目的方法,許多 Apache Jakarta 項目發文時使用 Maven,而且公司項目采用 Maven 的比例在持續增長。
Maven這個單詞來自於意第緒語(猶太語),意為知識的積累,最初在Jakata Turbine項目中用來簡化構建過程。當時有一些項目(有各自Ant build文件),僅有細微的差別,而JAR文件都由CVS來維護。於是希望有一種標準化的方式構建項目,一個清晰的方式定義項目的組成,一個容易的方式發佈項目的信息,以及一種簡單的方式在多個項目中共享JARs
知識點總結:
Maven項目對象模型(POM) 主要管理項目的構建,報告和文檔的項目管理工具軟件。
1.2為什麼要使用maven
由於 Java 的生態非常豐富,無論你想實現什麼功能,都能找到對應的工具類,這些工具類都是以 jar包的形式出現的,例如 Spring,SpringMVC、MyBatis、數據庫驅動,等等,都是以 jar包的形式出現的,jar包之間會有關聯,在使用一個依賴之前,還需要確定這個依賴所依賴的其他依賴,所以,當項目比較大的時候,依賴管理會變得非常麻煩臃腫,這是 Maven 解決的第一個問題。
Maven 還可以處理多模塊項目。簡單的項目,單模塊分包處理即可,如果項目比較復雜,要做成多模塊項目,例如一個電商項目有訂單模塊、會員模塊、商品模塊、支付模塊…,一般來說,多模塊項目,每一個模塊無法獨立運行,要多個模塊合在一起,項目才可以運行,這個時候,借助 Maven 工具,可以實現項目的一鍵打包。
Maven 之前,我們更多的是使用Ant的項目構建工具,Ant 有一個特點,每次都得寫,每次都寫的差不多,配置也臃腫。所以,後來搞出來Maven。Maven就是最先進的版本構建工具嗎?不是的,隻不過,目前在 Java 領域 Maven 使用比較多。除瞭 Maven,還有 Gradle。
2.Maven安裝
Maven是 Java項目,因此必須先安裝 JDK。
2.1下載Maven:
下載地址:http://maven.apache.org/download.cgi
2.2解壓並配置
bin: 該目錄包含瞭mvn運行的腳本,分別為mvn、mvn.bat、mvnDebug、mvnDebug.bat和m2.conf,這些腳本用來配置 Java 命令,準備 CLASSPATH 和相關的 Java 系統屬性,然後執行 Java 命令
boot: 該目錄隻包含一個文件,以maven 3.0為例,該文件為plexus-classworlds-2.2.3.jar。plexus-classworlds是一個類加載器框架,相對於默認的 Java 類加載器,它提供瞭更豐富的語法以方便配置,Maven 使用該框架加載自己的類庫。
conf: 該目錄包含瞭要給非常重要的文件settings.xml。直接修改該文件,就能再機器上全局地定制 Maven 的行為。一般情況下,我們更偏向於復制該文件至/.m2/目錄下(表示用戶目錄),然後修改該文件,在用戶范圍定制 Maven 的行為。
lib: 該目錄包含瞭所有 Maven 運行時需要的 Java 類庫,Maven 本身是分模塊開發的,因此用戶能看到諸如maven-core-3.0.jar和maven-model-3.0.jar之類的文件。
LICENSE: 該文件記錄瞭 Maven 使用的軟件許可證
NOTICE:該文件記錄瞭 Maven 包含的第三方軟件。
README.txt: 該文件則包含瞭 Maven 的簡要介紹,包括安裝需求以及如何安裝的簡要指令等。
2.3編輯Maven環境變量
2.3.1檢查JDK環境變量
1.配置Java_Home環境變量
2.通過DOS命令窗口 檢查配置是否有效
2.3.2 配置maven_home環境變量
1.配置MAVEN_HOME
2.配置環境變量
3.檢查Maven是否有效 重啟DOS窗口
3.Maven配置
實際上,沒有特殊需求的話,安裝好之後直接就可以用瞭。一般來說,還是需要稍微配置一下,比如中央倉庫的問題。Maven默認使用自己的中央倉庫,使用起來網速比較慢,這個時候,可以通過修改配置文件,將倉庫改成國內的鏡像倉庫,國內倉庫使用較多的是阿裡巴巴的倉庫。
3.1倉庫類型
倉庫類型 說明 | |
---|---|
本地倉庫 |
就是你自己電腦上的倉庫,每個人電腦上都有一個倉庫,默認位置在當前用戶名\.m2\repository |
私服倉庫 |
一般來說是公司內部搭建的 Maven私服,處於局域網中,訪問速度較快,這個倉庫中存放的 jar一般就是公司內部自己開發的 jar |
中央倉庫 |
由 Apache團隊來維護,包含瞭大部分的 jar,早期不包含Oracle數據庫驅動,從 2019年 8月開始,包含瞭 Oracle 驅動 |
現在存瞭三個倉庫,那麼jar包如何查找呢?
3.2本地倉庫配置
本地倉庫默認位置在當前用戶名\.m2\repository
,這個位置可以自定義,但是不建議大傢自定義這個地址,有幾個原因:
- 雖然所有的本地的 jar都放在這個倉庫中,但是並不會占用很大的空間。
- 默認的位置比較隱蔽,不容易碰到
技術上來說,當然是可以自定義本地倉庫位置的,在 conf/settings.xml中自定義本地倉庫位置:
<localRepository>f:\My-Maven-Repository</localRepository>
3.3遠程鏡像配置
由於默認的中央倉庫下載較慢,因此,也可以將遠程倉庫地址改為阿裡巴巴的鏡像倉庫地址:
<mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> </mirror>
這段配置,加在 settings.xml中的 mirrors節點中:
4.Maven常用命令
Maven中有一些常見的命令,如果使用Eclipse需要手動敲命令,如果使用 IDEA的話,可以不用命令,直接點點點就可以瞭
常用命令 中文含義 說明 |
||
mvn clean |
清理 |
這個命令可以用來清理已經編譯好的文件 |
mvn compile |
編譯 |
將 Java代碼編譯成Class文件 |
mvn test |
測試 |
項目測試 |
mvn package |
打包 |
根據用戶的配置,將項目打成 jar包或者 war包 |
mvn install |
安裝/部署 |
手動向本地倉庫安裝一個 jar |
mvn deploy |
上傳 |
將 jar上傳到私服 |
這裡需要註意的是,這些命令都不是獨立運行的,它有一個順序。舉個簡單例子:
我想將jar上傳到私服,那麼就要構建jar,就需要執行package命令,要打包,當然也需要測試,那就要走mvn test 命令,要測試就要先編譯………………………… ,因此,最終所有的命令都會執行一遍。不過,開發者也可以手動配置不執行某一個命令,這就是跳過。一般來說,除瞭測試,其他步驟都不建議跳過。
當然,如果開發者使用瞭 IDEA,這些命令不用手動敲,點一下就行:
1.validate 驗證工程是否正確,所有需要的資源是否可用。 命令: mvn validate
2.compile 將文件由.java文件編譯為.class文件 動態生成target文件目錄 命令: mvn compile
3.clean 清空target文件目錄 命令: mvn clean
4.test 執行測試方法是否正確 命令: mvn test
5.package 將項目的target文件打包為jar包文件 命令: mvn package
6.verify 對集成測試的結果進行檢查,以保證質量達標 命令: mvn verify
7.install 安裝打包的項目到本地倉庫,以供其他項目使用 命令: mvn install
8.site 項目站點文檔創建的處理 命令: mvn site
9.deploy 拷貝最終的工程包到遠程倉庫中,以共享給其他開發人員和工程 (瞭解 用不到)
4.1 通過命令來構建項目
可以直接通過命令來構建一個 Maven項目,不過在實際開發中,一般使用Eclipse或者 IDEA就可以直接創建 Maven項目瞭。創建命令:
mvn archetype:generate
需要註意:第一次使用該命令,會先下載構建項目所需的jar包
項目創建成功後,就兩個文件:
說明對一個任何一個項目而言,最最核心的就是這兩個。
pom.xml中,則定義瞭所有的項目配置
4.2 對項目進行打包
接下來,我們通過mvn package
命令可以將剛剛創建的項目打成一個 jar包。
在打包之前,需要配置JDK的版本至少為 7以上,因此,我們還需要手動修改一下pom.xml 文件,即添加如下配置:
<!-- java版本 --> <profile> <id>jdk-11</id> <activation> <activeByDefault>true</activeByDefault> <jdk>11</jdk> </activation> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> <maven.compiler.compilerVersion>11</maven.compiler.compilerVersion> </properties> </profile>
執行打包命令,註意執行所有命令時,命令行要定位到 pom.xml文件所在的目錄,看到如下提示,表示項目打包成功。
4.3 將項目安裝到本地倉庫
如果需要將項目安裝到本地倉庫,可以直接執行 mvn install
命令,註意,mvn install
命令會包含上面的 mvn package
過程。
安裝到本地倉庫之後,這個時候,點開自己的本地倉庫,就可以看到相關的 jar瞭。
到此這篇關於Maven實現項目構建工具的文章就介紹到這瞭,更多相關Maven項目構建工具內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Java基礎之簡單介紹一下Maven
- 帶你走進Maven的大門-最全Maven配置及集成idea工具總結
- IDEA2022.2的簡介、下載與安裝、配置教程
- 如何修改maven默認的JDK版本
- 在CentOS7(有圖形化界面)上安裝maven和idea的詳細教程