运行sonarrunner时未发现类错误 [英] Class not found error when running sonarrunner

查看:221
本文介绍了运行sonarrunner时未发现类错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在找到类未找到的错误。该类不能通过类加载器访问,并且在从gradle运行sonarrunner时会提示错误。

这些类在gradle和gradle构建中的编译时被包含为依赖关系。

  14:53:24.322信息 - 加载模块设置
14:53:如何在声纳中包含这些类? 24.335 INFO - Base dir:/ Users / srao1 / Documents / GradleTest / lds_warehouse / lds_warehouse_base
14:53:24.335信息 - 工作目录:/ Users / srao1 / Documents / GradleTest / lds_warehouse / build / sonar / lds_warehouse_lds_warehouse_base
14:53:24.336信息 - 源文件路径:src
14:53:24.336信息 - 测试路径:test
14:53:24.336信息 - 二进制目录:build / classes / main
14:53:24.336信息 - 源编码:UTF-8,缺省语言环境:en_US
14:53:24.336信息 - 索引文件
14:53:24.444信息 - 索引的50个文件
14:53:24.593信息 - java的质量配置文件:声纳方式
14:53:24.604信息 - 传感器JavaSquidSensor
14:53:24.620警告 - sonar.binaries和sonar.libraries自版本2.5 sonar-java-plugin,请使用sonar.java.binaries和sonar.java.libraries而不是
14:53:24.628 INFO - Java主文件AST扫描...
14: 53:24.628 INFO - 要分析的45个源文件
14:53:25.070错误 - 未找到类:com.lim.dw.dao.base.bean.WarehouseFeed
14:53:25.070错误 - 未找到类:com.lim.dw.dao.base.bean.PhaseTimer
14:53:32.459 WARN - 类'com / lim / lds / LdsDataFeed'无法通过ClassLoader访问。
14:53:32.459 WARN - 类'com / lim / lds / LdsDataFeed'不能通过ClassLoader访问。
14:53:32.459 WARN - 类'com / lim / logger / Logger'不能通过ClassLoader访问。
14:53:32.459 WARN - 类'com / lim / logger / Logger'不能通过ClassLoader访问。
14:53:32.477 INFO - 完成Java字节码扫描:162 ms
14:53:32.477信息 - Java测试文件AST扫描...
14:53:32.477 INFO - 5 source要分析的文件
14:53:32.727信息 - Java测试文件AST扫描完成:250毫秒
14:53:32.728信息 - 已分析5/5源文件
14:53 :32.728 INFO - 软件包设计分析...
14:53:32.800 INFO - 完成软件包设计分析:72 ms
14:53:32.889 INFO - Sensor JavaSquidSensor(done)时间= 8285ms
14:53:32.889信息 - 传感器线路传感器
14:53:32.892信息 - 传感器线路传感器(已完成)时间= 3ms
14:53:32.892信息 - 传感器QProfileSensor
14:53:32.894信息 - 传感器QProfileSensor(完成)时间= 2ms
14:53:32.904信息 - 传感器InitialOpenIssuesSensor
14:53:33.016信息 - 传感器InitialOpenIssuesSensor(完成)时间= 112ms
14:53:33.016 INFO - Sensor ProjectLinksSensor
14:53:33.018 INFO - Sensor ProjectLinksSensor(done)|时间= 2ms
14:53:33.018信息 - 传感器版本事件传感器
14:53:33.023信息 - 传感器版本事件传感器(完成)时间= 5ms
14:53:33.023信息 - 传感器SurefireSensor
14:53:33.023信息 - 解析/ Users / srao1 / Documents / GradleTest / lds_warehouse / lds_warehouse_base / target / surefire-reports
14:53:33.023错误 - 报告路径未找到或不是目录:/ Users / srao1 / Documents / GradleTest / lds_warehouse / lds_warehouse_base / target / surefire-reports
14:53:33.023 INFO - Sensor SurefireSensor(done )|时间= 0ms
14:53:33.023信息 - 传感器JaCoCoOverallSensor
14:53:33.037警告 - 您没有使用最新的JaCoCo二进制格式版本,请考虑升级到最新的JaCoCo版本。
14:53:33.037信息 - 分析/Users/srao1/Documents/GradleTest/lds_warehouse/lds_warehouse_base/build/jacoco/jacocoTest.exec
14:53:33.072警告 - 您没有使用最新的JaCoCo二进制格式版本,请考虑升级到最新的JaCoCo版本。
14:53:33.072信息 - 分析/Users/srao1/Documents/GradleTest/lds_warehouse/build/sonar/lds_warehouse_lds_warehouse_base/jacoco-overall.exec
14:53:33.234信息 - 没有关于覆盖率的信息测试。
14:53:33.234信息 - 传感器JaCoCoOverallSensor(完成)|时间= 211ms
14:53:33.234信息 - 传感器SCM传感器
14:53:33.234信息 - 没有检测到SCM系统。您可以使用'sonar.scm.provider'属性来显式指定它。
14:53:33.234信息 - 传感器SCM传感器(已完成)|时间= 0ms
14:53:33.234信息 - 传感器JaCoCoSensor
14:53:33.236警告 - 您没有使用最新的JaCoCo二进制格式版本,请考虑升级到最新的JaCoCo版本。
14:53:33.236信息 - 分析/Users/srao1/Documents/GradleTest/lds_warehouse/lds_warehouse_base/build/jacoco/jacocoTest.exec
14:53:33.306信息 - 没有关于每个测试的覆盖率的信息。
14:53:33.306信息 - 传感器JaCoCoSensor(done)|时间= 72ms
14:53:33.306信息 - 传感器CPD传感器
14:53:33.306信息 - JavaCpdEngine用于java
14:53:33.307 INFO - 禁用跨项目分析
14:53:33.545信息 - 传感器CPD传感器(已完成)|时间= 239ms
14:53:33.546信息 - 没有配置质量门。
14:53:33.549信息 - 与之前的分析比较(2015-07-23)
14:53:33.550信息 - 比较30天以上(2015-06-24,分析日期7月22日16 :29:23 CDT 2015)
14:53:33.716 INFO - 执行装饰器...


sonar.java.binaries 和 sonar.java.test.binaries 提供源文件的字节码位置。第三方库的Bytecode(或JAR)位置由属性 sonar.java.libraries sonar.java.test.libraries

如果你没有正确提供这些属性,那么你会看到一些'Class not found'错误。这并不妨碍完成分析,但很多SQ Java规则可能无法正常工作,也不会检测到任何问题。

<部分>示例:
sonar-runner -Dsonar.sources = src -Dsonar.java.binaries = bin / classes -Dsonar.java.libraries = libs / *。jar


I am getting class not found error. The the class is not accessible through class loader and an error is being prompt when running the sonarrunner from gradle.

These classes are included as dependencies in compile time in gradle and gradle build works fine. How to include these classes for sonar ?

    14:53:24.322 INFO  - Load module settings
14:53:24.335 INFO  - Base dir: /Users/srao1/Documents/GradleTest/lds_warehouse/lds_warehouse_base
14:53:24.335 INFO  - Working dir: /Users/srao1/Documents/GradleTest/lds_warehouse/build/sonar/lds_warehouse_lds_warehouse_base
14:53:24.336 INFO  - Source paths: src
14:53:24.336 INFO  - Test paths: test
14:53:24.336 INFO  - Binary dirs: build/classes/main
14:53:24.336 INFO  - Source encoding: UTF-8, default locale: en_US
14:53:24.336 INFO  - Index files
14:53:24.444 INFO  - 50 files indexed
14:53:24.593 INFO  - Quality profile for java: Sonar way
14:53:24.604 INFO  - Sensor JavaSquidSensor
14:53:24.620 WARN  - sonar.binaries and sonar.libraries are deprecated since version 2.5 of sonar-java-plugin, please use sonar.java.binaries and sonar.java.libraries instead
14:53:24.628 INFO  - Java Main Files AST scan...
14:53:24.628 INFO  - 45 source files to be analyzed
14:53:25.070 ERROR - Class not found: com.lim.dw.dao.base.bean.WarehouseFeed
14:53:25.070 ERROR - Class not found: com.lim.dw.dao.base.bean.PhaseTimer
14:53:32.459 WARN  - Class 'com/lim/lds/LdsDataFeed' is not accessible through the ClassLoader.
14:53:32.459 WARN  - Class 'com/lim/lds/LdsDataFeed' is not accessible through the ClassLoader.
14:53:32.459 WARN  - Class 'com/lim/logger/Logger' is not accessible through the ClassLoader.
14:53:32.459 WARN  - Class 'com/lim/logger/Logger' is not accessible through the ClassLoader.
14:53:32.477 INFO  - Java bytecode scan done: 162 ms
14:53:32.477 INFO  - Java Test Files AST scan...
14:53:32.477 INFO  - 5 source files to be analyzed
14:53:32.727 INFO  - Java Test Files AST scan done: 250 ms
14:53:32.728 INFO  - 5/5 source files have been analyzed
14:53:32.728 INFO  - Package design analysis...
14:53:32.800 INFO  - Package design analysis done: 72 ms
14:53:32.889 INFO  - Sensor JavaSquidSensor (done) | time=8285ms
14:53:32.889 INFO  - Sensor Lines Sensor
14:53:32.892 INFO  - Sensor Lines Sensor (done) | time=3ms
14:53:32.892 INFO  - Sensor QProfileSensor
14:53:32.894 INFO  - Sensor QProfileSensor (done) | time=2ms
14:53:32.904 INFO  - Sensor InitialOpenIssuesSensor
14:53:33.016 INFO  - Sensor InitialOpenIssuesSensor (done) | time=112ms
14:53:33.016 INFO  - Sensor ProjectLinksSensor
14:53:33.018 INFO  - Sensor ProjectLinksSensor (done) | time=2ms
14:53:33.018 INFO  - Sensor VersionEventsSensor
14:53:33.023 INFO  - Sensor VersionEventsSensor (done) | time=5ms
14:53:33.023 INFO  - Sensor SurefireSensor
14:53:33.023 INFO  - parsing /Users/srao1/Documents/GradleTest/lds_warehouse/lds_warehouse_base/target/surefire-reports
14:53:33.023 ERROR - Reports path not found or is not a directory: /Users/srao1/Documents/GradleTest/lds_warehouse/lds_warehouse_base/target/surefire-reports
14:53:33.023 INFO  - Sensor SurefireSensor (done) | time=0ms
14:53:33.023 INFO  - Sensor JaCoCoOverallSensor
14:53:33.037 WARN  - You are not using the latest JaCoCo binary format version, please consider upgrading to latest JaCoCo version.
14:53:33.037 INFO  - Analysing /Users/srao1/Documents/GradleTest/lds_warehouse/lds_warehouse_base/build/jacoco/jacocoTest.exec
14:53:33.072 WARN  - You are not using the latest JaCoCo binary format version, please consider upgrading to latest JaCoCo version.
14:53:33.072 INFO  - Analysing /Users/srao1/Documents/GradleTest/lds_warehouse/build/sonar/lds_warehouse_lds_warehouse_base/jacoco-overall.exec
14:53:33.234 INFO  - No information about coverage per test.
14:53:33.234 INFO  - Sensor JaCoCoOverallSensor (done) | time=211ms
14:53:33.234 INFO  - Sensor SCM Sensor
14:53:33.234 INFO  - No SCM system was detected. You can use the 'sonar.scm.provider' property to explicitly specify it.
14:53:33.234 INFO  - Sensor SCM Sensor (done) | time=0ms
14:53:33.234 INFO  - Sensor JaCoCoSensor
14:53:33.236 WARN  - You are not using the latest JaCoCo binary format version, please consider upgrading to latest JaCoCo version.
14:53:33.236 INFO  - Analysing /Users/srao1/Documents/GradleTest/lds_warehouse/lds_warehouse_base/build/jacoco/jacocoTest.exec
14:53:33.306 INFO  - No information about coverage per test.
14:53:33.306 INFO  - Sensor JaCoCoSensor (done) | time=72ms
14:53:33.306 INFO  - Sensor CPD Sensor
14:53:33.306 INFO  - JavaCpdEngine is used for java
14:53:33.307 INFO  - Cross-project analysis disabled
14:53:33.545 INFO  - Sensor CPD Sensor (done) | time=239ms
14:53:33.546 INFO  - No quality gate is configured.
14:53:33.549 INFO  - Compare to previous analysis (2015-07-23)
14:53:33.550 INFO  - Compare over 30 days (2015-06-24, analysis of Wed Jul 22 16:29:23 CDT 2015)
14:53:33.716 INFO  - Execute decorators...

解决方案

To perform source code analysis the SQ Java plugin needs bytecode in addition to the source code. Bytecode location for source files is provided thanks to properties sonar.java.binaries and sonar.java.test.binaries. Bytecode (or JAR) locations for third party libs is provided by properties sonar.java.libraries and sonar.java.test.libraries.

If you don't provide correctly those properties then you'll see some 'Class not found' errors. That doesn't prevent to complete the analysis but many SQ Java rules will probably not work and not detect any issue.

(Partial) example: sonar-runner -Dsonar.sources=src -Dsonar.java.binaries=bin/classes -Dsonar.java.libraries=libs/*.jar

这篇关于运行sonarrunner时未发现类错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆