一、什么是Maven?
Apache Maven是一個(gè)軟件項(xiàng)目管理的綜合工具。基于項(xiàng)目對(duì)象模型(POM)的概念,提供了幫助管理構(gòu)建、文檔、報(bào)告、依賴、發(fā)布等方法,Maven簡(jiǎn)化和標(biāo)準(zhǔn)化項(xiàng)目建設(shè)過程。處理編譯,分配,文檔,團(tuán)隊(duì)協(xié)作和其他任務(wù)的無縫連接。 Maven增加可重用性并負(fù)責(zé)建立相關(guān)的任務(wù)。
1)Maven好處
可以將項(xiàng)目過程規(guī)范化、自動(dòng)化、高效化以及強(qiáng)大的可擴(kuò)展性,利用maven自身及其插件還可以獲得代碼檢查報(bào)告、單元測(cè)試覆蓋率、實(shí)現(xiàn)持續(xù)集成等等。
使得項(xiàng)目的管理變得容易,構(gòu)建項(xiàng)目的速度更快,由于Maven提供了倉(cāng)庫(kù)的概念去管理jar包,所以用git或者svn的時(shí)候,存儲(chǔ)構(gòu)建的項(xiàng)目體積會(huì)更小。
2)作用
管理項(xiàng)目的構(gòu)建、文檔生成、報(bào)告、依賴、SCMs(software configuration Management)、分布、分發(fā)、郵件列表。
二、Maven的基本原理
采用遠(yuǎn)程倉(cāng)庫(kù)和本地倉(cāng)庫(kù)以及一個(gè)核心的配置文件pom.xml,pom.xml中定義的jar文件從遠(yuǎn)程倉(cāng)庫(kù)下載到本地倉(cāng)庫(kù),各個(gè)項(xiàng)目使用同一個(gè)本地倉(cāng)庫(kù)的jar,同一個(gè)版本的jar只需下載一次,而且避免每個(gè)應(yīng)用都去拷貝jar。同時(shí)它采用了現(xiàn)在流行的插件體系架構(gòu),所以maven的核心非常的小,只有幾兆大小的文件,在執(zhí)行maven任務(wù)時(shí),才會(huì)自動(dòng)下載需要的插件。
具體的概念模型如下圖:
Maven官方把maven定義為一個(gè)項(xiàng)目管理工具,下面我們來看看maven給我們的項(xiàng)目管理做了哪些工作?
- 項(xiàng)目標(biāo)準(zhǔn)化
Maven項(xiàng)目具有統(tǒng)一的項(xiàng)目結(jié)構(gòu),這個(gè)項(xiàng)目結(jié)構(gòu)是參考業(yè)界的最佳實(shí)踐而成,為后面使用統(tǒng)一的maven命令打下了基礎(chǔ),如測(cè)試mvn test、打包mvn package等,無需寫一行腳本,就可以方便的實(shí)現(xiàn)眾多功能。
- 文檔和報(bào)告
使用mvn site可以快速生成項(xiàng)目站點(diǎn),apache很多開源項(xiàng)目站點(diǎn)都采用maven生成,會(huì)出現(xiàn)built by maven字樣的圖標(biāo)。
- 類庫(kù)管理
類庫(kù)管理是maven一個(gè)比較核心的功能,我們就需要將項(xiàng)目所依賴的類庫(kù)加入到pom.xml中,那么maven會(huì)自動(dòng)將依賴的類庫(kù)下載到本地,并且下載的類庫(kù)如果還依賴其他的類庫(kù),它也會(huì)自動(dòng)下載過來,這樣我們就不需要一個(gè)一個(gè)類庫(kù)去下載了。
發(fā)布管理
使用maven可以方便的進(jìn)行項(xiàng)目發(fā)表管理。在項(xiàng)目開發(fā)到一定階段,可以使用mvn package打包,它會(huì)自動(dòng)先運(yùn)行mvn test,跑所有的Test Case,只有全部通過才能正確打包。生成的war包(如果項(xiàng)目的packaging為war)在target目錄下。這個(gè) war包與使用ant腳本生成一樣,但無需一行腳本,這也是maven對(duì)比ant的優(yōu)勢(shì)之一。使用mvn install將編譯和打包好的文件發(fā)布到本地倉(cāng)庫(kù)中。使用mvn deploy在整合或者發(fā)布環(huán)境下執(zhí)行,將最終版本的包拷貝到遠(yuǎn)程的repository。
三、Maven安裝
官網(wǎng)地址:http://maven.apache.org/
Maven下載地址:http://maven.apache.org/download.cgi
這里我兩個(gè)環(huán)境的版本都下載,分別在我本機(jī)和linux虛擬機(jī)安裝。
1)Window安裝Maven
1、解壓
# 解壓的目錄
D:\software\Maven\apache-maven-3.8.4-bin
Maven根目錄文件介紹:
- bin:Maven的運(yùn)行腳本。bin\mvn.cmd是基于windows的腳本。在cmd中每輸入一條mvn的命令都是在調(diào)用并執(zhí)行這些腳本。
- boot:該項(xiàng)目只有一個(gè)文件plexus-classworlds-2.5.2.jar。他是一個(gè)類加載器的框架,相當(dāng)于對(duì)JDK中的類的加載器,提供了豐富的語(yǔ)法以此用來方便配置,Maven使用該框架加載自己的類庫(kù)。
- conf:該目錄包含了一個(gè)非常重要的文件setting.xml。配置該文件就可以在Project中定制Maven的行為。
- lib:包含了所有Maven運(yùn)行時(shí)需要的Java類庫(kù)以及用到的第三方類庫(kù)。
- LICENSE:軟件許可
- NOTICE:軟件引用的三方軟件
- README.txt:包含了Maven的簡(jiǎn)介
2、Maven環(huán)境變量配置
依賴Java,需要配置JAVA_HOME,沒有裝jdk的還得先裝jdk
設(shè)置Maven自身自身的運(yùn)行環(huán)境,需要配置MAVEN_HOME
配置完JAVA_HOME和MAVEN_HOME,還得配置Path,在Path加上:%JAVA_HOME%\bin和%MAVEN_HOME%\bin
3、驗(yàn)證
# 這里使用git bash
$ java -version
$ mvn -v
4、配置本地倉(cāng)庫(kù)(資源下到哪)
# 創(chuàng)建本地存放jar包目錄
D:\software\Maven\repository
# 找到maven安裝目錄下conf/settings.xml
5、配置阿里鏡像倉(cāng)庫(kù)(資源從哪來)
先查找默認(rèn)的配置,在lib目錄下隨便找個(gè)jar包用解壓工具打開-》再回到上層目錄-》ctrl+F搜索pom.找到pom-4.0.0.xml-》把這個(gè)文件拖出來打開
但是注意不是去修改jar包里面的這個(gè)配置,還是回到conf/setting.xml這個(gè)配置文件,修改這個(gè)配置文件。
<mirror>
<!-- 此鏡像的唯一標(biāo)識(shí),用來區(qū)分不同的mirror元素 -->
<id>nexus-aliyun</id>
<!-- 對(duì)哪種倉(cāng)庫(kù)進(jìn)行鏡像,簡(jiǎn)單的就是替代哪個(gè)倉(cāng)庫(kù) -->
<mirrorOf>central</mirrorOf>
<!-- 鏡像名稱 -->
<name>Nexus aliyun</name>
<!-- 鏡像url -->
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
2)Linux安裝Maven
1、下載解壓
$ mkdir -p /opt/software
$ cd /opt/software
$ wget https://dlcdn.apache.org/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz
$ tar -zvxf apache-maven-3.8.4-bin.tar.gz -C /opt/software/
2、配置環(huán)境變量
# 在/etc/profile
export PATH=/opt/software/apache-maven-3.8.4/bin:$PATH
# 加載生效
$ source /etc/profile
3、驗(yàn)證
$ java -version
$ mvn -v
四、創(chuàng)建Maven項(xiàng)目
1)手動(dòng)構(gòu)建maven項(xiàng)目
默認(rèn)git bash是沒有tree命令的,這里提供下載地址:
官網(wǎng)下載地址:http://gnuwin32.sourceforge.net/packages/tree.htm
百度云下載地址:
鏈接:https://pan.baidu.com/s/17fc79rQUQSnBhWzej9xd9g
提取碼:6666
把tree.exe放到git安裝目錄下的usr/bin/目錄下
1、創(chuàng)建文件
### 查看創(chuàng)建的目錄和目錄結(jié)構(gòu)
$ tree hello/
$ cat hello/src/main/java/com/test2022/Hello.java
$ cat hello/src/test/java/com/test2022/HelloTest.java
$ cat hello/pom.xml
2、編譯(mvn compile)
$ cd hello
$ mvn compile
發(fā)現(xiàn)編譯報(bào)錯(cuò)了:
[
] 不再支持源選項(xiàng) 5。請(qǐng)使用 7 或更高版本。
[] 不再支持目標(biāo)選項(xiàng) 5。請(qǐng)使用 7 或更高版本。
-
修改全局,修改maven安裝目錄下conf/setting.xml文件,配置jdk,內(nèi)容如下:
<profile>
<id>jdk-13</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>13</jdk>
</activation>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>13</maven.compiler.source>
<maven.compiler.target>13</maven.compiler.target>
</properties>
</profile>
-
修改局部,修改項(xiàng)目目錄下的 pom.xml文件,配置jdk,內(nèi)容如下:
<properties>
<!-- 這里填jdk的版本,我使用的是jkd13 -->
<maven.compiler.target>13</maven.compiler.target>
<maven.compiler.source>13</maven.compiler.source>
</properties>
這里我采用【解決方案一】修改全局的配置
再編譯,編譯成功
$ mvn compile
3、清理(mvn clean)
$ mvn clean
# 發(fā)現(xiàn)上面編譯產(chǎn)生的target目錄會(huì)刪掉
$ tree .
4、測(cè)試(mvn test)
$ mvn test
5、打包(mvn package)
【溫馨提示】這里只打包編譯好的源程序(xxx.class文件)
$ mvn package
6、安裝到本地倉(cāng)庫(kù)(mvn install)
【溫馨提示】這里groupid決定放在倉(cāng)庫(kù)的哪個(gè)文件下,配置<groupId>com.hello</groupId>,所以生成的包就會(huì)放在倉(cāng)庫(kù)目錄的com/hello目錄下。
會(huì)經(jīng)歷編譯(compile)-》測(cè)試(test)-》打包(package) -》安裝(install)的過程。
2)通過maven插件構(gòu)建項(xiàng)目(命令行操作)
1、構(gòu)建工程(模板)
模板:
mvn archetype:generate
-DgroupId={project-packaging}
-DartifactId={project-name}
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false
示例:
2、構(gòu)建java工程
$ mvn archetype:generate -DgroupId=com.test2022 -DartifactId=java-project -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot -DinteractiveMode=false
目錄結(jié)構(gòu)
3、構(gòu)建web工程
$ mvn archetype:generate -DgroupId=com.test2022 -DartifactId=web-project -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -DinteractiveMode=false
目錄結(jié)構(gòu)
3)通過IDEA創(chuàng)建空項(xiàng)目來構(gòu)建maven java項(xiàng)目
【溫馨提示】IDEA官網(wǎng)下載地址:https://www.jetbrains.com/idea/
1、創(chuàng)建一個(gè)Empty Project
2、配置jdk
3、配置maven
File->Settings,把默認(rèn)配置自帶的maven修改上面下載的版本
4、創(chuàng)建maven工程
5、編寫測(cè)試代碼
6、編譯構(gòu)建
7、配置運(yùn)行環(huán)境
配置編譯
配置清理
右上角就有兩個(gè)運(yùn)行的快捷選項(xiàng)了
4)通過IDEA模板構(gòu)建maven java項(xiàng)目
1、搜索quickstart模板創(chuàng)建
2、默認(rèn)的目錄結(jié)構(gòu)
會(huì)默認(rèn)創(chuàng)建一個(gè)org.example的demo,可以刪掉
3、手動(dòng)創(chuàng)建缺少的目錄
發(fā)現(xiàn)main和test里面都沒創(chuàng)建resources,下面我們手動(dòng)創(chuàng)建
4、修改目錄屬性
如果創(chuàng)建的是普通目錄,則可以右鍵目錄修改目錄屬性
5)通過IDEA模板構(gòu)建maven java-web項(xiàng)目
1、搜索webapp模板創(chuàng)建
2、默認(rèn)目錄結(jié)構(gòu)
3、手動(dòng)創(chuàng)建沒創(chuàng)建的目錄
4、創(chuàng)建一個(gè)index.jsp文件
5、添加tomcat插件
在maven庫(kù)中搜索tomcat:https://mvnrepository.com/
這里使用2.1版本的
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<port>80</port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build>
6、運(yùn)行web工程
【溫馨提示】默認(rèn)端口是8080,上面配置的80
發(fā)現(xiàn)報(bào)錯(cuò)了
【原因&解決】是因?yàn)槟J(rèn)創(chuàng)建的web.xml配置文件里有spring的配置,先把這些配置刪掉就行。最后web.xml只保留如下內(nèi)容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
</web-app>
再運(yùn)行
7、配置快捷運(yùn)行方式
五、Maven依賴管理
1)依賴配置
依賴指當(dāng)前項(xiàng)目運(yùn)行所需的jar包,一個(gè)項(xiàng)目可以設(shè)置多個(gè)依賴,示例如下:
<!-- 設(shè)置當(dāng)前項(xiàng)目所有依賴的所有jar包 -->
<dependencies>
<!-- 設(shè)置具體的依賴 -->
<dependency>
<!-- 依賴所屬群組id -->
<groupId>junit</groupId>
<!-- 依賴所屬項(xiàng)目id -->
<artifactId>junit</artifactId>
<!-- 依賴版本號(hào) -->
<version>4.12</version>
</dependency>
</dependencies>
2)依賴傳遞
依賴具有傳遞性:
- 間接依賴:在當(dāng)前項(xiàng)目中通過依賴配置建立的依賴關(guān)系
- 直接依賴:被資源的資源如果依賴其它資源,當(dāng)前項(xiàng)目間接依賴其它資源
3)依賴管理
1、依賴傳遞沖突問題
- 路徑優(yōu)先:當(dāng)前依賴中出現(xiàn)相同的資源時(shí),層級(jí)越深,優(yōu)先級(jí)越低,層級(jí)越淺,優(yōu)先級(jí)越高。
- 聲明優(yōu)先:當(dāng)資源在相同層級(jí)被依賴時(shí),配置順序靠前的覆蓋配置順序靠后的。
- 特殊優(yōu)先:當(dāng)同級(jí)配置了相同資源的不同版本,后配置的覆蓋先配置的。
2、可選依賴
可選依賴指對(duì)外隱藏當(dāng)前所依賴的資源----
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<!-- 配置不透明 -->
<optional>true</optional>
</dependency>
3、排除依賴
排除依賴指主動(dòng)斷開依賴的資源,被排除的資源無需指定版本----
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<!-- 配置排除依賴 -->
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
</exclusion>
</exclusions>
</dependency>
4、依賴范圍
- 依賴的jar默認(rèn)情況可以在任何地方使用,可以通過scope標(biāo)簽設(shè)定起作用范圍
- 作用范圍
- 主程序范圍有效(main文件夾范圍內(nèi))
- 測(cè)試程序范圍有效(test文件夾范圍內(nèi))
- 是否參與打包(package指令范圍內(nèi))
5、依賴范圍的傳遞性
帶有依賴范圍的資源在進(jìn)行傳遞時(shí),作用范圍將受到影響
六、生命周期與插件
1)項(xiàng)目構(gòu)建生命周期
Maven構(gòu)建生命周期描述的是一次構(gòu)建過程經(jīng)歷了多少的事件
2)Maven對(duì)構(gòu)建的生命周期劃分三個(gè)階段
- clean:清理工作
- default:核心工作,例如編譯、測(cè)試、打包、部署等。
- site:產(chǎn)生報(bào)告,發(fā)布站點(diǎn)等。
1、clean生命周期
- pre-clean:執(zhí)行一些需要在clean之前完成的工作
- clean:移除所有上一次構(gòu)建生成的文件
- post-clean:執(zhí)行一些需要在clean之后立刻完成的工作
2、default構(gòu)建生命周期
- validate (校驗(yàn)):校驗(yàn)項(xiàng)目是否正確并且所有必要的信息可以完成項(xiàng)目的構(gòu)建過程。
- initialize (初始化):初始化構(gòu)建狀態(tài),比如設(shè)置屬性值。
- generate-sources (生成源代碼):生成包含在編譯階段中的任何源代碼。
- process-sources (處理源代碼):處理源代碼,比如說,過濾任意值。
- generate-resources (資源文件):生成將會(huì)包含在項(xiàng)目包中的資源文件。
- process-resources (處理資源文件):復(fù)制和處理資源到目標(biāo)目錄,為打包階段最好準(zhǔn)備。
-
:編譯項(xiàng)目的源代碼。
- process-classes (處理類文件):處理編譯生成的文件,比如說對(duì)Java class文件做字節(jié)碼改善優(yōu)化。
- generate-test-sources (生成測(cè)試源代碼):生成包含在編譯階段中的任何測(cè)試源代碼。
- process-test-sources (處理測(cè)試源代碼):處理測(cè)試源代碼,比如說,過濾任意值。
- generate-test-resources (生成測(cè)試資源文件):為測(cè)試創(chuàng)建資源文件。
- process-test-resources (處理測(cè)試資源文件):復(fù)制和處理測(cè)試資源到目標(biāo)目錄。
-
(編譯測(cè)試源碼):編譯測(cè)試源代碼到測(cè)試目標(biāo)目錄。
- process-test-classes (處理測(cè)試類文件):處理測(cè)試源碼編譯生成的文件。
-
(測(cè)試):使用合適的單元測(cè)試框架運(yùn)行測(cè)試(Juint是其中之一)。
- prepare-package (準(zhǔn)備打包):在實(shí)際打包之前,執(zhí)行任何的必要的操作為打包做準(zhǔn)備。
-
(打包):將編譯后的代碼打包成可分發(fā)格式的文件,比如JAR、WAR或者EAR文件。
- pre-integration-test (集成測(cè)試前):在執(zhí)行集成測(cè)試前進(jìn)行必要的動(dòng)作。比如說,搭建需要的環(huán)境。
- integration-test (集成測(cè)試):處理和部署項(xiàng)目到可以運(yùn)行集成測(cè)試環(huán)境中。
- post-integration-test (集成測(cè)試后):在執(zhí)行集成測(cè)試完成后進(jìn)行必要的動(dòng)作。比如說,清理集成測(cè)試環(huán)境。
- verify (驗(yàn)證):運(yùn)行任意的檢直來驗(yàn)證項(xiàng)目包有效達(dá)到質(zhì)量標(biāo)準(zhǔn)。
-
(安裝):安裝項(xiàng)目包到本地倉(cāng)庫(kù),這樣項(xiàng)目包可以用作其他本地項(xiàng)目的依賴。
- deploy (部署):將最終的項(xiàng)目包復(fù)制到遠(yuǎn)程倉(cāng)庫(kù)中與其他開發(fā)者和項(xiàng)目共享。
【溫馨提示】:像compile、test、test-compile、package、install等,排在它們前面的步驟都會(huì)執(zhí)行。圖示如下:
3、site構(gòu)建的生命周期
- pre-site:執(zhí)行一些需要在生成站點(diǎn)文檔之前完成的工作
- site:生成項(xiàng)目的站點(diǎn)文檔
- post-site:執(zhí)行一些需要在生成站點(diǎn)文檔之后完成的工作,并且為部署做準(zhǔn)備
- site-deploy:將生成的站點(diǎn)文檔部署到特殊的服務(wù)器上
3)插件
插件與生命周期內(nèi)的階段綁定,在執(zhí)行到對(duì)應(yīng)生命周期時(shí)執(zhí)行對(duì)應(yīng)的插件功能,默認(rèn)maven在各個(gè)生命周期上綁定有預(yù)設(shè)的功能,通過插件可以自定義其他功能。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
<phase>generate-test-resources</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
七、工程版本管理
- SNAPSHOT (快照版本)
項(xiàng)目開發(fā)過程中,為方便團(tuán)隊(duì)成員合作,解決模塊間相互依賴和時(shí)時(shí)更新的問題,開發(fā)者對(duì)每個(gè)模塊進(jìn)行構(gòu)建的時(shí)候,輸出的臨時(shí)性版本叫快照版本(測(cè)試階段版本),快照版本會(huì)隨著開發(fā)的進(jìn)展不斷更新。
- RELEASE (發(fā)布版本)
項(xiàng)目開發(fā)到進(jìn)入階段里程碑后,向團(tuán)隊(duì)外部發(fā)布較為穩(wěn)定的版本,這種版本所對(duì)應(yīng)的構(gòu)件文件是穩(wěn)定的,即便進(jìn)行功能的后續(xù)開發(fā),也不會(huì)改變當(dāng)前發(fā)布版本內(nèi)容,這種版本稱為發(fā)布版本。
工程版本號(hào)約定規(guī)范:
【版本格式】<主版本>.< 次版本>.<i曾量版本 >.<里程碑版本>
- 主版本:表示項(xiàng)目重大架構(gòu)的變更,如:spring5相較于spring4的迭代
- 次版本:表示有較大的功能增加和變化,或者全面系統(tǒng)地修復(fù)漏洞
- 增量版本:表示有重大漏洞的修復(fù)
- 里程碑版本:表明一個(gè)版本的里程碑(版本內(nèi)部)。這樣的版本同下一個(gè)正式版本相比,相對(duì)來說不是很穩(wěn)定,有待更多的測(cè)試。
【范例】
5.1.9.RELEASE或5.1.9-RELEASE
八、多環(huán)境資源配置
一般公司至少有三套環(huán)境(開發(fā)、測(cè)試、生產(chǎn)),如果每次把程序打包好上傳到對(duì)應(yīng)的環(huán)境之前就得更改一下配置,是很煩的操作,所以就有了這里的多環(huán)境資源配置了。
示例:
<!-- 創(chuàng)建多環(huán)境 -->
<profiles>
<!-- 定義具體的環(huán)境:開發(fā)環(huán)境 -->
<profile>
<id>dev</id>
<!--…… -->
</profile>
<!-- 定義具體的環(huán)境:測(cè)試環(huán)境 -->
<profile>
<id>test</id>
<!--…… -->
</profile>
<!-- 定義具體的環(huán)境:生產(chǎn)環(huán)境 -->
<profile>
<!-- 定義環(huán)境對(duì)應(yīng)的唯一id -->
<id>pro</id>
<!-- 定義環(huán)境中專用的屬性 -->
<properties>
<jdbc.url>jdbc:mysql://127.1.1.1:3306/ssm_db</jdbc.url>
</properties>
<!-- 設(shè)置默認(rèn)啟動(dòng) -->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>
通過命令加載指定環(huán)境
【調(diào)用格式】mvn 指令 -P 環(huán)境定義id
【示例】
$ mvn install -P pro
九、跳過測(cè)試
1)跳過測(cè)試環(huán)節(jié)的應(yīng)用場(chǎng)景
- 整體模塊功能未開發(fā)
- 模塊中某個(gè)功能未開發(fā)完畢
- 單個(gè)功能更新調(diào)試導(dǎo)致其他功能失敗
- 快速打包
2)跳過測(cè)試的兩種方法
- 使用命令跳過測(cè)試
【調(diào)用格式】mvn 指令 –D skipTests
- 使用配置跳過測(cè)試
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<!-- 設(shè)置跳過測(cè)試 -->
<skipTests>true</skipTests>
<!-- 包含指定測(cè)試用例 -->
<includes>
<include>**/User*Test.java</include>
</includes>
<!-- 排除指定測(cè)試用例 -->
<excludes>
<exclude>**/User*TestCase.java</exclude>
</excludes>
</configuration>
</plugin>