最近,我有些麻烦,试图在我的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的问题相关推荐

  1. 用maven搭建 testNG+PowerMock+Mockito测试框架

    转载:http://www.cnblogs.com/changzhz/p/5158068.html 单元测试是开发中必不可少的一部分,是产品代码的重要保证. Junit和testNG是当前最流行的测试 ...

  2. 持续集成[代码流水线管理及Jenkins和gitlab集成]-自动化部署05

    安装sonar Scanner 打开http://www.sonarqube.org/官网 找到下面扫描器 通过这个扫描器可以分析代码分析 因此你也的安装这个扫描器 上传sonar-scanner-2 ...

  3. CI服务器-Hudson持续集成服务器的安装配置与使用

    第一章 Hudson持续集成服务器的安装配置 IP:192.168.4.221  8G内存(Hudson多个工程在同时构建的情况下比较耗内存)  环境:CentOS 6.6.JDK7  Hudson不 ...

  4. Hudson之——持续集成服务器的安装与配置

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/71076496 IP:192.168.4.221 8G 内存(Hudson 多个工程 ...

  5. Hudson 持续集成服务器的安装配置与使用

    转自  吴水成 double 视频 Hudson 不需要用到数据库 Hudson 只是一个持续集成服务器(持续集成工具),要想搭建一套完整的持续集成管理平台, 还需要用到前面课程中所讲到的 SVN.M ...

  6. Quality Tools for Android

    原文:https://github.com/stephanenicolas/Quality-Tools-for-Android Quality Tools for Android This is an ...

  7. Spring+Dubbo+MyBatis+Linner分布式Web开发环境搭建

            Spring+Dubbo+MyBatis+Linner分布式Web开发环境搭建               本文承接我之前的博客<Spring+Maven+Dubbo+MyBat ...

  8. Spring+Dubbo+MyBatis+Linner分布式Web开发环境搭建(二)

    2.Maven父工程mkhl-parent:     parent工程结构如下图:       1)parent工程的pom文件: [html] view plaincopy print? <? ...

  9. sonar 不再支持 cobertura 插件(sonar支持的插件表)

    官方说明连接:https://docs.sonarqube.org/display/PLUG/Plugin+Version+Matrix ############################### ...

最新文章

  1. MySQL练习题:常用函数
  2. 全国大学生智能汽车竞赛讯飞 -智慧餐厅技术报告 ——信号与系统课程论文
  3. maven超级pom内容
  4. 太阳能正在崛起 光伏养老蔚然成风
  5. 4 个最好的 Linux 引导程序
  6. Spring boot配置文件随机数
  7. OC本学习笔记Foundation框架NSString与NSMutableString
  8. 量化投资(数据分析)
  9. 吐血推荐泛绿色编程工具: EditPlus 已于 2010-07-14 升级到 v3.12(602)
  10. 基于GIS和Python的百度地图街景爬取
  11. 安装和使用openBMC官网维护的qemu
  12. C#实战009:Excel操作-删除指定的Excel工作表
  13. drcom上网登录窗不弹出_无线网络连接后不能弹出浏览器登录页面是怎么回事?
  14. java 提取违反顺序_oracle 中 java.sql.SQLException: ORA-01002: 提取违反顺序
  15. 掌握.NET中的日常打印
  16. 使用 Kali Linux 爆破 WiFi 密码
  17. 我也曾经因安装库而抓狂,直到我遇到了Anaconda
  18. 海拔4000米计算机设备,普通笔记本海拔4000米以上就不灵了,西藏只能带固态硬盘笔记本!...
  19. 模式识别:C-means(K-means)聚类算法与分级聚类(层次聚类)算法
  20. 微小宝公众号排行榜_榜单 广东省技工院校微信公众号排行榜(50期)

热门文章

  1. Json字符串和对象相互转换
  2. JSP 统计网站访问人数
  3. Linux清理磁盘挂载点方法(亲测有效)
  4. ./NISwGSP: error while loading shared libraries: libopencv_stitching.so.3.0: cannot open shared obje
  5. IP暴露接口IP白名单设置
  6. ubuntu 13.04 mysql_Ubuntu13.04 下MySQL5.6安装过程
  7. //rest风格写_REST /使用提要发布事件
  8. 精简jdk包_具有JDK 12精简数字格式的自定义精简数字模式
  9. java异步接口转同步接口_如果今天设计了Java:同步接口
  10. vertx rest 跨域_在基于简单Vertx Rest的应用程序上为REST资源设置基本响应HTTP标头...