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 階段都不能通過,那就不會到達(dá) 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 進(jìn)行編譯、打包時,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)該是一個藍(lán)色的圓圈里面帶一個閃電。

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事務(wù)管理中關(guān)于數(shù)據(jù)庫連接池詳解
事務(wù)的作用就是為了保證用戶的每一個操作都是可靠的,事務(wù)中的每一步操作都必須成功執(zhí)行,只要有發(fā)生異常就 回退到事務(wù)開始未進(jìn)行操作的狀態(tài)。事務(wù)管理是Spring框架中最為常用的功能之一,我們在使用Spring Boot開發(fā)應(yīng)用時,大部分情況下也都需要使用事務(wù)2022-12-12
Intellij IDEA的一些調(diào)試技巧(小結(jié))
本篇文章主要介紹了Intellij IDEA的一些調(diào)試技巧(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
Spring MVC如何設(shè)置請求頭和響應(yīng)頭的Header
這篇文章主要介紹了Spring MVC如何設(shè)置請求頭和響應(yīng)頭的Header問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03
使用Java操作MySQL實現(xiàn)數(shù)據(jù)交互的方法
JDBC是Java中用于操作數(shù)據(jù)庫的API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它通過JDK自帶的JDBC API和數(shù)據(jù)庫驅(qū)動包進(jìn)行操作,實現(xiàn)數(shù)據(jù)庫的增刪改查,本文給大家介紹使用Java操作MySQL實現(xiàn)數(shù)據(jù)交互的方法,感興趣的朋友跟隨小編一起看看吧2025-01-01
SpringBoot實現(xiàn)發(fā)送驗證碼功能(圖片驗證碼)
這篇文章主要介紹了SpringBoot實現(xiàn)發(fā)送驗證碼功能(圖片驗證碼),本次內(nèi)容主要學(xué)習(xí)如何做一個發(fā)送驗證碼和識別驗證碼的功能,需要的朋友可以參考下2024-06-06
java 遠(yuǎn)程文件url如何轉(zhuǎn)為輸入流
這篇文章主要介紹了java 遠(yuǎn)程文件url如何轉(zhuǎn)為輸入流方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10

