Maven打包跳過測試的5種方式總結(jié)
前言
今天工作中遇見一個小問題,正好晚上沒什么安排,而且也很久沒寫博客了,我就想著將問題記錄一下。
平時開發(fā)時的工作的話之主要負(fù)責(zé)寫代碼就行了,什么發(fā)布項目啊,好吧不是我們干的事。在我們的了解中打包發(fā)布項目應(yīng)該不是一個困難的問題。對,最簡單的方法就行使用直接使用maven插件打包,甚至我們都不需要知道他是怎么實現(xiàn)的,插件能幫我們將項目打包為一個jar包,然后使用java -jar xx.jar
就能運行我們的項目。
我們平時使用的在開發(fā)中使用的是開發(fā)或測試的數(shù)據(jù)庫,和生產(chǎn)上面的一般是隔離的,意味著打包的時候需要激活生產(chǎn)的配置文件,但是我們不一定有訪問生產(chǎn)庫的權(quán)限,此時我們直接打包就會出現(xiàn)問題。當(dāng)我們直接點擊上面的package
的時候他會激活單元測試,需要測試通過以后才能打包,但是很顯然測是不能通過的,因為我激活了生產(chǎn)的配置但是我并沒有訪問上產(chǎn)庫的權(quán)限,此時就會陷入一直打包卻打不完的感覺,這就需要我們打包時跳過測試。那怎么跳過測試呢?
為什么打包時要執(zhí)行單元測試呢?【這不是我們的重點,那我們就簡單講講,需要深入了解的自行查閱相關(guān)資料?!看藭r就涉及到 Maven 的生命周期,在 Maven 的 default 生命周期中共有 23 個階段,每個生命周期中的后面的階段會依賴于前面的階段,當(dāng)執(zhí)行某個階段的時候,會先執(zhí)行其前面的階段。在 default 生命周期中 package 階段不是第一個階段,因此也需要依賴于前面的階段的執(zhí)行,正好 test 階段【測試:使用合適的單元測試框架運行測試(Juint是其中之一)?!烤褪瞧淝懊骐A段之一,此時就會必須先通過 test 階段才會到 package 階段【 打包:將編譯后的代碼打包成可分發(fā)格式的文件,比如JAR、WAR…】。
我們因為沒有訪問生產(chǎn)庫的權(quán)限,此時連 test 階段都不能通過,那就不會到達 package 這個階段。那有什么解決方法呢?下面我們探討一下此問題的解決方法:
1、命令行方式跳過測試
我們可以通過使用命令將項目打包,添加跳過測試的命令就可以了,可以用兩種命令來跳過測試:
- mvn package -DskipTests=true
- -DskipTests=true,不執(zhí)行測試用例,但編譯測試用例類生成相應(yīng)的class文件至 target/test-classes 下。
- mvn package -Dmaven.test.skip=true
- -Dmaven.test.skip=true,不執(zhí)行測試用例,也不編譯測試用例類。
在使用 mvn package
進行編譯、打包時,Maven會執(zhí)行 src/test/java
中的 JUnit 測試用例,有時為了跳過測試,會使用參數(shù) -DskipTests=true
和 -Dmaven.test.skip=true
,這兩個參數(shù)的主要區(qū)別是:
- 使用
-Dmaven.test.skip=true
,不但跳過單元測試的運行,也跳過測試代碼的編譯; - 使用
-DskipTests=true
跳過單元測試,但是會繼續(xù)編譯。
2、pom.xml中配置跳過測試
可以在 pom.xml 中添加如下配置來跳過測試:
<build> <plugins> <!-- maven 打包時跳過測試 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> </plugins> </build>
3、直接配置
Maven命令欄的工具欄有下圖中的圖標(biāo),這個圖標(biāo)就是 Skip Tests。點擊選中,再用 LifeStyle 中的打包就會跳過測試。注:因為我的IDEA是2022的版本,圖標(biāo)可能和以前的版本有些許區(qū)別,以前的版本應(yīng)該是一個藍色的圓圈里面帶一個閃電。
4、添加Maven配置參數(shù)
打開配置,找到 Build,Exxcution,Deployment –> Maven Tools –> Maven –> Runner,在 VM option 中添加 -Dmaven.test.skip=true
或者 -DskipTests=true
,就能在打包是跳過測試。
5、通過更改設(shè)置
打開配置,找到 Build,Exxcution,Deployment –> Maven Tools –> Maven –> Runner,在 Properties 中勾選 Skip Test 選項。
以上就是我查閱資料之后找到是幾種打包跳過測試的方式。
參考
總結(jié)
到此這篇關(guān)于Maven打包跳過測試的5種方式的文章就介紹到這了,更多相關(guān)Maven打包跳過測試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot啟動過程(五)之Springboot內(nèi)嵌Tomcat對象的start教程詳解
這篇文章主要介紹了Spring Boot啟動過程(五)之Springboot內(nèi)嵌Tomcat對象的start的相關(guān)資料,需要的朋友可以參考下2017-04-04Spring集成Web環(huán)境與SpringMVC組件的擴展使用詳解
這篇文章主要介紹了Spring集成Web環(huán)境與SpringMVC組件,它是一個MVC架構(gòu),用來簡化基于MVC架構(gòu)的Web應(yīng)用開發(fā)。SpringMVC最重要的就是五大組件2022-08-08SpringBoot定時調(diào)度之Timer與Quartz詳解
Java?中常用的定時調(diào)度框架有以下幾種:Timer、ScheduledExecutorService、Spring?Task和Quartz,本文主要來和大家講講他們的具體使用,需要的可以參考一下2023-06-06解決springboot 多線程使用MultipartFile讀取excel文件內(nèi)容報錯問題
這篇文章主要介紹了解決springboot 多線程使用MultipartFile讀取excel文件內(nèi)容報錯問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09SpringBoot配置自定義攔截器實現(xiàn)過程詳解
在系統(tǒng)中經(jīng)常需要在處理用戶請求之前和之后執(zhí)行一些行為,例如檢測用戶的權(quán)限,或者將請求的信息記錄到日志中,即平時所說的"權(quán)限檢測"及"日志記錄",下面這篇文章主要給大家介紹了關(guān)于在SpringBoot項目中整合攔截器的相關(guān)資料,需要的朋友可以參考下2022-10-10mybatis主從表關(guān)聯(lián)查詢,返回對象帶有集合屬性解析
這篇文章主要介紹了mybatis主從表關(guān)聯(lián)查詢,返回對象帶有集合屬性解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03Java數(shù)據(jù)結(jié)構(gòu)之最小堆和最大堆的原理及實現(xiàn)詳解
在計算機科學(xué)中,堆(heap)?的實現(xiàn)是一種基于樹的特殊的數(shù)據(jù)結(jié)構(gòu),它可以在數(shù)組上構(gòu)建出樹的結(jié)構(gòu)體,并滿足堆的屬性。本文就來和大家詳細(xì)聊聊Java數(shù)據(jù)結(jié)構(gòu)中的堆,感興趣的可以了解一下2022-09-09