Cobertura和Sonar 5.1的问题
最近,我有些麻烦,试图在我的Grails 2.4.4项目中使用Sonar 5.1。 我使用的是Groovy常用的东西: Gmetrics,Codenarc和Cobertura 。 对于Sonar数据库,我使用的是Postgres 9.4 。
声纳跑步者的日志文件给了我这个:
build 22-Jun-2015 07:44:30 INFO: ------------------------------------------------------------------------
build 22-Jun-2015 07:44:30 INFO: EXECUTION FAILURE
build 22-Jun-2015 07:44:30 INFO: ------------------------------------------------------------------------
build 22-Jun-2015 07:44:30 Total time: 9.153s
build 22-Jun-2015 07:44:30 Final Memory: 30M/1039M
build 22-Jun-2015 07:44:30 INFO: ------------------------------------------------------------------------
error 22-Jun-2015 07:44:30 ERROR: Error during Sonar runner execution
error 22-Jun-2015 07:44:30 ERROR: Unable to execute Sonar
error 22-Jun-2015 07:44:30 ERROR: Caused by: Unable to save file sources
error 22-Jun-2015 07:44:30 ERROR: Caused by: -1
没什么用! 我认为存在一些权限问题,因为“无法保存文件源”通常意味着! 但是没有权限问题。 然后,我禁用了分析的Cobertura部分,一切正常,因此Cobertura部分出了问题。 然后,我:
- 启用详细日志记录— sonar.verbose = true
- 启用了完整堆栈跟踪日志记录—使用-e开关
- 使用-X开关启用了完整的调试日志记录
这提供了更多线索。
error 22-Jun-2015 11:09:06 ERROR: Error during Sonar runner execution
build 22-Jun-2015 11:09:06 INFO: ------------------------------------------------------------------------
error 22-Jun-2015 11:09:06 org.sonar.runner.impl.RunnerException: Unable to execute Sonar
error 22-Jun-2015 11:09:06 at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:91)
error 22-Jun-2015 11:09:06 at org.sonar.runner.impl.BatchLauncher$1.run(BatchLauncher.java:75)
error 22-Jun-2015 11:09:06 at java.security.AccessController.doPrivileged(Native Method)
error 22-Jun-2015 11:09:06 at org.sonar.runner.impl.BatchLauncher.doExecute(BatchLauncher.java:69)
error 22-Jun-2015 11:09:06 at org.sonar.runner.impl.BatchLauncher.execute(BatchLauncher.java:50)
error 22-Jun-2015 11:09:06 at org.sonar.runner.api.EmbeddedRunner.doExecute(EmbeddedRunner.java:102)
error 22-Jun-2015 11:09:06 at org.sonar.runner.api.Runner.execute(Runner.java:100)
error 22-Jun-2015 11:09:06 at org.sonar.runner.Main.executeTask(Main.java:70)
error 22-Jun-2015 11:09:06 at org.sonar.runner.Main.execute(Main.java:59)
error 22-Jun-2015 11:09:06 at org.sonar.runner.Main.main(Main.java:53)
error 22-Jun-2015 11:09:06 Caused by: java.lang.IllegalStateException: Unable to save file sources
error 22-Jun-2015 11:09:06 at org.sonar.batch.index.SourcePersister.persist(SourcePersister.java:84)
error 22-Jun-2015 11:09:06 at org.sonar.batch.phases.DatabaseModePhaseExecutor.executePersisters(DatabaseModePhaseExecutor.java:165)
error 22-Jun-2015 11:09:06 at org.sonar.batch.phases.DatabaseModePhaseExecutor.execute(DatabaseModePhaseExecutor.java:133)
error 22-Jun-2015 11:09:06 at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:264)
error 22-Jun-2015 11:09:06 at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92)
error 22-Jun-2015 11:09:06 at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77)
error 22-Jun-2015 11:09:06 at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:235)
error 22-Jun-2015 11:09:06 at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:230)
error 22-Jun-2015 11:09:06 at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:220)
error 22-Jun-2015 11:09:06 at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92)
error 22-Jun-2015 11:09:06 at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77)
error 22-Jun-2015 11:09:06 at org.sonar.batch.scan.ScanTask.scan(ScanTask.java:57)
error 22-Jun-2015 11:09:06 at org.sonar.batch.scan.ScanTask.execute(ScanTask.java:45)
error 22-Jun-2015 11:09:06 at org.sonar.batch.bootstrap.TaskContainer.doAfterStart(TaskContainer.java:135)
error 22-Jun-2015 11:09:06 at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:92)
error 22-Jun-2015 11:09:06 at org.sonar.api.platform.ComponentContainer.execute(ComponentContainer.java:77)
error 22-Jun-2015 11:09:06 at org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:158)
error 22-Jun-2015 11:09:06 at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:95)
error 22-Jun-2015 11:09:06 at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67)
error 22-Jun-2015 11:09:06 at org.sonar.runner.batch.IsolatedLauncher.execute(IsolatedLauncher.java:48)
error 22-Jun-2015 11:09:06 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
error 22-Jun-2015 11:09:06 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
error 22-Jun-2015 11:09:06 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
error 22-Jun-2015 11:09:06 at java.lang.reflect.Method.invoke(Method.java:606)
error 22-Jun-2015 11:09:06 at org.sonar.runner.impl.BatchLauncher$1.delegateExecution(BatchLauncher.java:87)
error 22-Jun-2015 11:09:06 ... 9 more
error 22-Jun-2015 11:09:06 Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
error 22-Jun-2015 11:09:06 at java.util.ArrayList.elementData(ArrayList.java:371)
error 22-Jun-2015 11:09:06 at java.util.ArrayList.get(ArrayList.java:384)
error 22-Jun-2015 11:09:06 at com.google.protobuf.RepeatedFieldBuilder.getBuilder(RepeatedFieldBuilder.java:245)
error 22-Jun-2015 11:09:06 at org.sonar.server.source.db.FileSourceDb$Data$Builder.getLinesBuilder(FileSourceDb.java:2911)
error 22-Jun-2015 11:09:06 at org.sonar.batch.index.SourceDataFactory.
现在,我可以在日志的前面看到Cobertura分析已经完成。 我还可以看到Cobertura coverage.xml生成正常(这是整理代码coverage信息的文件)。 创建coverage.xml文件之后,下一步是让声纳运行器解析该文件并将其发送给Postgres,在解析阶段必须出错,因为连接到Postgres绝对不是问题(记住Cobertura禁用后一切都很好) )。 我知道将请求发送到Postgres没问题,所以认为coverage.xml文件中一定有一些奇怪的地方,这意味着Sonar运行程序无法解析它。 如前所述,coverage.xml文件详细说明了每个类的行号已经被覆盖。 样品:
<class name="com.dublintech.me.ApiLogFilters" filename="com/dublintech/me/ApiLogFilters.groovy" line-rate="0.0" branch-rate="0.0" complexity="0.0"><methods><method name="<clinit>" signature="()V" line-rate="0.0" branch-rate="1.0"><lines><line number="25" hits="0" branch="false"></line></lines></method>...
</methods></class>
...
那么什么样的东西可以使解析桶呢? 如果coverage.xml文件中有一些奇数行怎么办? 嗯……要检查这一点,我运行了以下grep:
> grep "line number" coverage.xml
这给了太多。 负数行号怎么办?
>grep "line number=\"\-" coverage.xml
不,没有 好,回到异常,看这一行:
java.lang.ArrayIndexOutOfBoundsException: -1
hmmm ...如果行号为0,我想知道它是否可以在声纳运行器中进行一些数组解析,从而使索引超出范围?
>grep "line number=\"0" coverage.xml
击中! 是时候前后grep行,并获得有关此文件的更多信息。
>grep -C20 "line number=\"0" coverage.xml
这给了我罪魁祸首。 对于我来说,Cobertura为什么说行号0的点击率为0毫无意义。 仍然可以打开Cobertura html报告并查看分析。 声纳在解析时只是在f地。 因此,通过将以下内容添加到我的构建配置中,从Cobertura分析中删除了此文件。
coverage {xml = trueexclusions = ["**/com/dublintech/me/MyOddFile*"]
}
然后,我重新运行,嘿嘿,一切正常。 该文件不在coverage.xml文件中。 这意味着Sonar跑步者可以解析文件,一切正常。
我喜欢声纳,喜欢稳定的构造,喜欢快速反馈,是的,当它再次工作时,我是一个快乐的人!
翻译自: https://www.javacodegeeks.com/2015/06/problems-with-cobertura-and-sonar-5-1.html
Cobertura和Sonar 5.1的问题相关推荐
- 用maven搭建 testNG+PowerMock+Mockito测试框架
转载:http://www.cnblogs.com/changzhz/p/5158068.html 单元测试是开发中必不可少的一部分,是产品代码的重要保证. Junit和testNG是当前最流行的测试 ...
- 持续集成[代码流水线管理及Jenkins和gitlab集成]-自动化部署05
安装sonar Scanner 打开http://www.sonarqube.org/官网 找到下面扫描器 通过这个扫描器可以分析代码分析 因此你也的安装这个扫描器 上传sonar-scanner-2 ...
- CI服务器-Hudson持续集成服务器的安装配置与使用
第一章 Hudson持续集成服务器的安装配置 IP:192.168.4.221 8G内存(Hudson多个工程在同时构建的情况下比较耗内存) 环境:CentOS 6.6.JDK7 Hudson不 ...
- Hudson之——持续集成服务器的安装与配置
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/71076496 IP:192.168.4.221 8G 内存(Hudson 多个工程 ...
- Hudson 持续集成服务器的安装配置与使用
转自 吴水成 double 视频 Hudson 不需要用到数据库 Hudson 只是一个持续集成服务器(持续集成工具),要想搭建一套完整的持续集成管理平台, 还需要用到前面课程中所讲到的 SVN.M ...
- Quality Tools for Android
原文:https://github.com/stephanenicolas/Quality-Tools-for-Android Quality Tools for Android This is an ...
- Spring+Dubbo+MyBatis+Linner分布式Web开发环境搭建
Spring+Dubbo+MyBatis+Linner分布式Web开发环境搭建 本文承接我之前的博客<Spring+Maven+Dubbo+MyBat ...
- Spring+Dubbo+MyBatis+Linner分布式Web开发环境搭建(二)
2.Maven父工程mkhl-parent: parent工程结构如下图: 1)parent工程的pom文件: [html] view plaincopy print? <? ...
- sonar 不再支持 cobertura 插件(sonar支持的插件表)
官方说明连接:https://docs.sonarqube.org/display/PLUG/Plugin+Version+Matrix ############################### ...
最新文章
- MySQL练习题:常用函数
- 全国大学生智能汽车竞赛讯飞 -智慧餐厅技术报告 ——信号与系统课程论文
- maven超级pom内容
- 太阳能正在崛起 光伏养老蔚然成风
- 4 个最好的 Linux 引导程序
- Spring boot配置文件随机数
- OC本学习笔记Foundation框架NSString与NSMutableString
- 量化投资(数据分析)
- 吐血推荐泛绿色编程工具: EditPlus 已于 2010-07-14 升级到 v3.12(602)
- 基于GIS和Python的百度地图街景爬取
- 安装和使用openBMC官网维护的qemu
- C#实战009:Excel操作-删除指定的Excel工作表
- drcom上网登录窗不弹出_无线网络连接后不能弹出浏览器登录页面是怎么回事?
- java 提取违反顺序_oracle 中 java.sql.SQLException: ORA-01002: 提取违反顺序
- 掌握.NET中的日常打印
- 使用 Kali Linux 爆破 WiFi 密码
- 我也曾经因安装库而抓狂,直到我遇到了Anaconda
- 海拔4000米计算机设备,普通笔记本海拔4000米以上就不灵了,西藏只能带固态硬盘笔记本!...
- 模式识别:C-means(K-means)聚类算法与分级聚类(层次聚类)算法
- 微小宝公众号排行榜_榜单 广东省技工院校微信公众号排行榜(50期)
热门文章
- Json字符串和对象相互转换
- JSP 统计网站访问人数
- Linux清理磁盘挂载点方法(亲测有效)
- ./NISwGSP: error while loading shared libraries: libopencv_stitching.so.3.0: cannot open shared obje
- IP暴露接口IP白名单设置
- ubuntu 13.04 mysql_Ubuntu13.04 下MySQL5.6安装过程
- //rest风格写_REST /使用提要发布事件
- 精简jdk包_具有JDK 12精简数字格式的自定义精简数字模式
- java异步接口转同步接口_如果今天设计了Java:同步接口
- vertx rest 跨域_在基于简单Vertx Rest的应用程序上为REST资源设置基本响应HTTP标头...