博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Maven 参数(maven.test.skip 和 maven.test.skip.exec) 区别
阅读量:6514 次
发布时间:2019-06-24

本文共 895 字,大约阅读时间需要 2 分钟。

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

 

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

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

 

情况2mvn 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的源码,他没能力编译这些,所以编译不通过。

 

 

第二种情况, 我们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 但这不是最好的方法

最好的方法是,让sonarsource version target version设置为1.6,而不是默认的1.5

本文转自 charles_wang888 51CTO博客,原文链接:http://blog.51cto.com/supercharles888/834260,如需转载请自行联系原作者
你可能感兴趣的文章
Matlab DIP(瓦)ch4图像频域滤波练习
查看>>
表达式求值(1)
查看>>
结对编程--四则运算
查看>>
matlab
查看>>
9.python(第九天日记)
查看>>
单例模式(四)
查看>>
八大排序算法
查看>>
三网融合之方向在哪儿?
查看>>
一个简单的时间片轮转多道程序内核代码分析--20135334赵阳林
查看>>
apache的扩展模块安装
查看>>
二分答案
查看>>
首师大附中科创教育平台 我的刷题记录(8)
查看>>
mvc area出现“找到多个与名为“Home”的控制器匹配的类型”错误的解决方法
查看>>
Eclipse 热部署方式
查看>>
android好博客
查看>>
leetcode(java)
查看>>
csvde导出计算机/用户信息
查看>>
雨燕apply项目总结
查看>>
GUI按键绑定到键盘和打印组件
查看>>
手动编译 Nginx 并安装 VeryNginx
查看>>