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!

推薦閱讀: