Maven參數(maven.test.skip和maven.test.skip.exec)區(qū)別

 Part 1:原因在于我們參數的差異:

五大連池網站建設公司創(chuàng)新互聯(lián)公司,五大連池網站設計制作,有大型網站制作公司豐富經驗。已為五大連池成百上千家提供企業(yè)網站建設服務。企業(yè)網站搭建\外貿網站建設要多少錢,請找那個售后服務好的五大連池做網站的公司定做!

 

情況1 :mvn clean install -Dmaven.test.skip=true

這種情況,即不編譯測試類文件,也不執(zhí)行測試類文件

 

情況2:mvn clean install –Dmaven.test.skip.exec=true

這種情況,編譯測試類文件成字節(jié)碼文件,但是不執(zhí)行字節(jié)碼文件

 

 

由于以前大家都沒寫單元測試,所以沒問題,現在有單元測試進來了,于是問題來了。

 

 

----分界線----

 

第一種情況下,(也就是出錯的情況),我們maven3(基于JDK 1.6)不編譯這些,所以一直運行到build successful ,沒問題。

然后。。(關鍵來了)執(zhí)行sonar,因為我們Jenkins版本非常低,只能接受sonar2.0,而sonar 2.0(基于JDK 1.5)在執(zhí)行生命周期時 maven-compiler-plugin:2.3.2:testCompile時候,他發(fā)現沒有編譯那些類,所以他用jdk 1.5編譯測試類,而我們源代碼是1.6的源碼,他沒能力編譯這些,所以編譯不通過。



Maven 參數(maven.test.skip 和 maven.test.skip.exec) 區(qū)別

 

 

第二種情況,我們maven3(基于JDK 1.6) 編譯這些類,所以在target目錄下生成了 1.6版本的字節(jié)碼,但是不運行他們。一切都很順利,然后到了sonar了,同樣會調用compiler-plugin:2.3.2:testCompile ,(關鍵來了),此時他比較一下時間戳,發(fā)現是已經有最新的字節(jié)碼了(剛maven3 使用JDK 1.6來編譯的),所以,他就跳過了testCompile階段,所以沒問題了。

 

 

 

 

Part 2:解決辦法

 

一個辦法就是把參數弄成Dmaven.test.skip.exec ,但這不是最好的方法

最好的方法是,讓sonar的source version 和target version都設置為1.6,而不是默認的1.5


Maven 參數(maven.test.skip 和 maven.test.skip.exec) 區(qū)別

 

當前題目:Maven參數(maven.test.skip和maven.test.skip.exec)區(qū)別
文章起源:http://muchs.cn/article28/iheojp.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供定制網站軟件開發(fā)、自適應網站、網站收錄微信小程序、企業(yè)建站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿網站建設