首頁 > 軟體

Maven實現專案構建工具

2022-07-15 22:00:32

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倉庫型別

倉庫型別 說明 
本地倉庫

就是你自己電腦上的倉庫,每個人電腦上都有一個倉庫,預設位置在當前使用者名稱.m2repository

私服倉庫

一般來說是公司內部搭建的 Maven私服,處於區域網中,存取速度較快,這個倉庫中存放的 jar一般就是公司內部自己開發的 jar

中央倉庫

由 Apache團隊來維護,包含了大部分的 jar,早期不包含Oracle資料庫驅動,從 2019年 8月開始,包含了 Oracle 驅動

現在存了三個倉庫,那麼jar包如何查詢呢?

3.2本地倉庫設定

本地倉庫預設位置在當前使用者名稱.m2repository,這個位置可以自定義,但是不建議大家自定義這個地址,有幾個原因:

  • 雖然所有的原生的 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專案構建工具內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com