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的源碼,他沒能力編譯這些,所以編譯不通過。
第二種情況,我們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ū)別
文章起源:http://muchs.cn/article28/iheojp.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供定制網站、軟件開發(fā)、自適應網站、網站收錄、微信小程序、企業(yè)建站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)