Java中Maven基礎詳解(包括maven作業原理、安裝配置、IDEA建立Maven工程)
文章目錄
- Java中Maven基礎詳解(包括maven作業原理、安裝配置、IDEA建立Maven工程)
- 當前主要的Java構建工具
- Maven基本概念:
- 1、專案構建生命周期:
- 2、專案中jar包管理
- 3、Maven專案資訊管理
- Maven安裝與配置
- 配置
- Maven本地倉庫配置
- Maven工程結構
- **pom.xml**
- 常見Maven命令:(與專案構建生命周期相關)
- Maven坐標(gav)
- Maven開發流程
- IDEA建立Maven工程(以2020.2版為例,其他版本大同小異)
當前主要的Java構建工具
- Maven,Gradle,Ivy,Builder,Ant等
- 其中,Maven是B/S專案主流,Gradle常用于移動開發
Maven基本概念:
- apache組織提供的一個頂級專案,由Java開發
- 作用:
- 管理專案構建生命周期
- 管理專案中jar(核心功能),自動幫程式員甄別和下載第三方庫(jar)
- 管理專案基礎資訊(檔案管理、測驗報告)
1、專案構建生命周期:
[清理]–>[編譯]–>[測驗]–>[報告]–>[打包]–>[安裝]–>[發布]
[clean]–>[compile]–>[test]–>[report]–>[package]–>[install]–>[publish]
2、專案中jar包管理
Maven作業原理:
在專案中,需要使用到第三方庫(即第三方jar包),傳統做法:自己去網上查找需要的jar包,下載到本地,進行配置,設定好地址,匯入jar包,才能使用,這種傳統做法存在兩個問題:
1、查找jar包、下載、配置麻煩;
2、需要把jar包放置在合適的路徑,當專案發送給其他機器時,可能會因為jar包地址報錯,(例如,自己把jar包放在f盤,發送給其他電腦時,沒有f盤,這時候編譯時就會發生報錯)
在專案構建工具Maven下,就可以避免這個問題,這也是Maven的核心功能所在:管理第三方jar包,
在Maven專案下,只需要網上在Maven倉庫中搜索所需的jar包,將jar包的依賴資訊復制在pom.xml檔案中,這樣,在專案編譯時,maven會自動檢索本地計算機是否含有所需jar包,如果沒有,在私服倉庫中查找jar包(即局域網內),都沒有的話,就從Maven中央倉庫中自動下載jar包,
由于Maven中央倉庫服務器在國外,下載時速度可能比較慢,這時候可以選擇國內一些有名的Maven倉庫,如阿里云,
Maven中jar包的獲取程序如下:

[本地倉庫]–>[局域網私服倉庫]–>[中央倉庫]
3、Maven專案資訊管理
- api檔案
- 測驗報告
Maven安裝與配置
安裝 解壓即可
注:現在IDEA,eclipse都自帶Maven,如非必要,不必安裝更換maven,IDEA中Maven的默認路徑在IDEA安裝目錄下:ideaIU-2020.2.3.win\plugins\maven\lib\maven3
查看版本號:在maven3/bin目錄下,調出cmd,輸入mvn -v
所以Maven原本是不需要配置的,只是為了在任何路徑下都可以使用Maven命令,所以需要配置
配置
- JAVA_HOME
- MAVEN-HOME:Maven安裝地址
- [path] %MAVEN-HOME%\bin
1、JAVA_HOME在安裝jdk時已經配置,故而不需要配置
2、MAVEN-HOME配置,在此電腦-屬性-高級系統設定-系統屬性中,點擊環境變數,
在下方系統變數中,新建,變數名MAVEN-HOME,變數值填IDEA中maven的地址
3、[path],系統變數中找到Path,雙擊進去,新建,輸入%MAVEN-HOME%\bin,配置完成,
在cmd視窗中輸入mvn -v,查看maven版本號,
表示配置成功,
Maven本地倉庫配置
本地倉庫默認位置:
C:\Users\Administrator\.m2\repository
重新設定Maven本地倉庫地址
Maven安裝路徑\conf\setting.xml中定位標簽
#53 <localRepository>/path/to/local/repository</localRepository>
重新設定本地倉庫位置
<localRepository>D:\DevTools\ideaIU-2020.2.3.win\plugins\maven\repository</localRepository>
阿里云鏡像設定
在mirror位置(大約160行左右)添加阿里云鏡像
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
Maven工程結構
-
Maven可以管理的工程,必須按照【約定結構】來創建
-
結構

-
src:(Java代碼)
-
main檔案夾:主要開發 業務程式
-
java(創建Java檔案)
Java檔案創建package,如 src\main\java\com\bjpowernode\model\Student.java -
resources(存放程式資源檔案(組態檔,properties))
-
-
test:主要進行測驗 單元測驗程式
-
Java(創建測驗類)
Java檔案創建測驗類,如 src\main\java\com\bjpowernode\model\TestMain.java -
resources(存放測驗程式資源檔案(測驗時使用的組態檔))
-
-
-
target檔案夾:(編譯后class檔案,在創建專案時,不需要創建,Maven命令在執行時自動創建target)
目錄如圖:

-
pom.xml:(核心組態檔:主要用來向Maven討要jar包)(Project Object Model)
-
eg:記事本開發Maven工程
Student.java
package com.bjpowernode.model;
public class Student{
public void sayHello(){
System.out.print("Hello Maven");
}
}
TestMain.java
package com.bjpowernode.test;
import com.bjpowernode.model.Student;
import org.junit.Test;
public class TestMain{
@Test
public void myTest (){
Student stu=n ew Student();
stu.sayHello();
}
}
pom.xml
包含了專案資訊,依賴資訊、構建資訊
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion> //固定不變的
//這三行是定位package的,簡稱gav
<groupId>com.bjpowernode</groupId> //域名
<artifactId>Maven_Project</artifactId> //專案名,不能有中文
<version>6.0</version> //版本號
//<package>war</package> //這一行通常為默認jar或war,需要時手動添加
//添加依賴
<dependencies>
//所需的依賴可以到百度Maven Repository,搜索相關包名,獲取gav
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
常見Maven命令:(與專案構建生命周期相關)
1、mvn clean 洗掉當前工程中target
2、mvn compile 將當前工程中main檔案下的所有java編譯為class,輸送到target檔案中
3、mvn test 運行test檔案下所有測驗檔案
4、mvn package 首先將test檔案下所有的java測驗類的方法呼叫執行進行測驗,并生成[測驗報告],如果測驗沒有問題,將main檔案下所有class檔案打成(jar/war),然后輸送到target
5、mvn install 與package命令執行基本一致,將[jar\war]推送到Maven的本地倉庫
Maven坐標(gav)
為了方便Maven對jar的定位,在Maven世界中,每一個jar都要由一個獨立坐標,相當于ip
artifact:構建
這個獨立坐標由三部分組成
1. <groupId>公司域名反順序</groupId> 組織
2. <artifactId>專案名稱</artifactId> 產品名稱
3. <version>專案版本號</version> 版本
Maven開發流程
- 新建Maven專案
- 在中央倉庫查找第三方jar的依賴文本
- 拷貝依賴文本至專案的pom.xml
- 執行Maven,編譯/構建整個專案
IDEA建立Maven工程(以2020.2版為例,其他版本大同小異)
打開IDEA,選擇創建Maven工程
選擇jdk1.8,勾選Create from archetype,這里選擇創建普通的maven專案,并不涉及java web專案,所以選擇quickstart,如果要創建web專案,選擇下面的webapp,點擊next,

在這一頁中,點擊Artifact Coordinates,展開,這里的groupID,artifactid,version就是之前提到的gavmaven坐標,填好后進入下一步next,

這里,User settings file選擇c盤默認即可,Local repository選擇上面你自己更改的repository,點擊finish,即完成maven專案的構建,
第一次配置Maven工程,需要等待一會(1分鐘左右),出現BUILD SUCCESS,即創建成功,
在main中Java中寫java代碼,將所需的依賴在pom.xml中寫入,
eg:求兩個數的最大公約數,
Java自帶的jdk沒有求最大公約數的函式,Apache組織中有個org.apache.commons中有個求最大公約數的方法(這里不必死記硬背函式庫,需要時上網查找即可,這里只是舉個例子)
百度Maven repository,進入Maven,搜索org.apache.commons,如圖
點擊第一個進入,選擇使用量較高的版本,復制依賴項,

然后在pom.xml中中粘貼依賴項
<!--apache擴展數學工具包-->
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-math3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>
在main-java中創建類hello,使用org.apache.commons中的方法,跟使用jdk自帶方法一樣
public static void main(String[] args) {
//計算兩個整數的公約數
int a = ArithmeticUtils.gcd(361, 285);
System.out.println("a = " + a);
}
即可求出兩個數的最大公約數,是不是很簡便,
此外,在IDEA的右側,有個Maven選項,點擊查看,
在Lifecycle中包括上面提及的Maven命令,點擊即可執行Maven命令,
**注意:**在每次添加依賴項后,最好手動點擊Maven左上角的重繪按鈕,以方便maven下載依賴項,以免報錯
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/234873.html
標籤:java
上一篇:java撰寫冒泡排序
下一篇:第一個Java程式
