Maven参数(maven.test.skip和maven.test.skip.exec)区别

 Part 1:原因在于我们参数的差异:

五大连池网站建设公司创新互联公司,五大连池网站设计制作,有大型网站制作公司丰富经验。已为五大连池成百上千家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的五大连池做网站的公司定做!

 

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

这种情况,即不编译测试类文件,也不执行测试类文件

 

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

这种情况,编译测试类文件成字节码文件,但是不执行字节码文件

 

 

由于以前大家都没写单元测试,所以没问题,现在有单元测试进来了,于是问题来了。

 

 

----分界线----

 

第一种情况下,(也就是出错的情况),我们maven3(基于JDK 1.6)不编译这些,所以一直运行到build successful ,没问题。

然后。。(关键来了)执行sonar,因为我们Jenkins版本非常低,只能接受sonar2.0,而sonar 2.0(基于JDK 1.5)在执行生命周期时 maven-compiler-plugin:2.3.2:testCompile时候,他发现没有编译那些类,所以他用jdk 1.5编译测试类,而我们源代码是1.6的源码,他没能力编译这些,所以编译不通过。



Maven 参数(maven.test.skip 和 maven.test.skip.exec) 区别

 

 

第二种情况,我们maven3(基于JDK 1.6) 编译这些类,所以在target目录下生成了 1.6版本的字节码,但是不运行他们。一切都很顺利,然后到了sonar了,同样会调用compiler-plugin:2.3.2:testCompile ,(关键来了),此时他比较一下时间戳,发现是已经有最新的字节码了(刚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) 区别

 

当前题目:Maven参数(maven.test.skip和maven.test.skip.exec)区别
文章起源:https://www.cdcxhl.com/article28/iheojp.html

成都网站建设公司_创新互联,为您提供定制网站软件开发自适应网站网站收录微信小程序企业建站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设