java - Findbugs NoClassesFoundToAnalyze 异常

标签 java findbugs sonarqube

我们使用 Sonar 进行代码分析,我相信它又使用 findbugs 进行字节码扫描。 Sonar 执行是在 ANT 构建系统中构建的,并在 RHEL 构建主机上运行。

突然间,代码覆盖率分析开始失败,发现 Noclasses 分析异常,当二进制文件目录中编译了 7951 个类时,这令人费解。

以下是收集指标所遵循的步骤 *) 先编译代码 *) Sonar 目标依赖于单元测试并触发单元测试 *) 然后在调用目标时执行 Sonar 部分

<target name="sonar" depends="run-testng-unittest-coverage">

            <path id="sonar.classpath">
              <fileset dir="${env.projecthome}/.m2/repository/" includes="**/*.jar"/>
              <fileset dir="${env.3rdpartyhome}/" includes="**/*.jar"/>
            </path>
    <property name="sonar.projectKey" value="project-short-name"/>
    <property name="sonar.projectVersion" value="1.0.0-SNAPSHOT"/>
    <property name="sonar.projectName" value="PROJECT SHORT DESC"/>
    <property name="sonar.language" value="java" />
    <property name="sonar.branch" value="main"/>
    <property name="sonar.host.url" value="http://sonar.instance:9000"/>
    <property name="sonar.jdbc.url" value="jdbc:mysql://sonar.instance:3306/sonar?useUnicode=true&amp;characterEncoding=utf8"/>
    <property name="sonar.jdbc.driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="sonar.jdbc.username" value="sonar"/>
    <property name="sonar.jdbc.password" value="sonar"/>
    <property name="sonar.findbugs.timeout" value="3600000"/>
    <property name="sonar.dynamicAnalysis" value="true"/>
    <property name="sonar.java.coveragePlugin" value="cobertura"/>
    <property name="sonar.core.codeCoveragePlugin" value="cobertura" />
    <property name="sonar.sources" value="src"/>
    <property name="sonar.tests" value="test/unit"/>
    <property name="sonar.binaries" value="build/test/unit/classes,App/classes"/>
    <pathconvert property="sonar.libraries" pathsep="," refid="sonar.classpath"/>
    <property name="sonar.exclusions" value="orm/**/*,selenium/**/*,sql/**/*,test/**/*,xml/**/*,xsl/**/*"/>
    <property name="sonar.sourceEncoding" value="ISO-8859-1"/>
    <property name="sonar.skipPackageDesign" value="true"/>
    <property name="sonar.surefire.reportsPath" value="${full.path.reports.testng}/unittest/junitreports"/>
    <property name="sonar.cobertura.reportPath" value="${full.path.reports.testng}/unittest/cobertura/coverage.xml"/>
            <taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml" classpathref="sonar.classpath" />
            <sonar:sonar key="${sonar.projectKey}" version="${sonar.projectVersion}" xmlns:sonar="antlib:org.sonar.ant"/>
    </target>

错误堆栈跟踪:

Caused by: java.util.concurrent.ExecutionException: edu.umd.cs.findbugs.NoClassesFoundToAnalyzeException: No classes found to analyze in /opt/project/build/test/unit/classes /opt/project/App/classes

   at edu.umd.cs.findbugs.FindBugs2.execute(FindBugs2.java:274)
    at org.sonar.plugins.findbugs.FindbugsExecutor$FindbugsTask.call(FindbugsExecutor.java:179)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:724)

总时长:6分25秒

sonar 二进制文件目录中的类总数

find /opt/project/build/test/unit/classes /opt/project/App/classes -name "*.class" |wc -l
7951

以下是Sonar下载的插件版本

    Sonar version: 3.5.1
    09:29:21.845 INFO  .s.b.b.BatchSettings - Load batch settings
    09:29:21.987 INFO     o.s.h.c.FileCache - User cache: /opt/home/user/.sonar/cache
    09:29:21.994 INFO  atchPluginRepository - Install plugins
    09:29:22.002 INFO  b.b.PluginDownloader - Download sonar-findbugs-plugin-1.2.jar
    09:29:22.262 INFO  b.b.PluginDownloader - Download sonar-issues-report-plugin-1.0.jar
    09:29:29.820 INFO  b.b.PluginDownloader - Download sonar-timeline-plugin-1.3.jar
    09:29:29.878 INFO  b.b.PluginDownloader - Download sonar-clirr-plugin-1.1.jar
    09:29:29.884 INFO  b.b.PluginDownloader - Download sonar-l10n-en-plugin-3.5.1.jar
    09:29:29.890 INFO  b.b.PluginDownloader - Download sonar-scm-activity-plugin-1.5.jar
    09:29:29.964 INFO  b.b.PluginDownloader - Download sonar-sonargraph-plugin-3.0.5.jar
    09:29:30.006 INFO  b.b.PluginDownloader - Download sonar-pdfreport-plugin-1.3.jar
    09:29:30.012 INFO  b.b.PluginDownloader - Download sonar-cpd-plugin-3.5.1.jar
    09:29:30.018 INFO  b.b.PluginDownloader - Download sonar-fb-contrib-plugin-1.1.jar
    09:29:30.040 INFO  b.b.PluginDownloader - Download sonar-pmd-plugin-1.2.jar
    09:29:30.107 INFO  b.b.PluginDownloader - Download sonar-squid-java-plugin-1.2.jar
    09:29:30.144 INFO  b.b.PluginDownloader - Download sonar-technicaldebt-plugin-1.2.1.jar
    09:29:30.150 INFO  b.b.PluginDownloader - Download sonar-email-notifications-plugin-3.5.1.jar
    09:29:30.179 INFO  b.b.PluginDownloader - Download sonar-useless-code-tracker-plugin-0.5.jar
    09:29:30.330 INFO  b.b.PluginDownloader - Download sonar-motion-chart-plugin-1.4.jar
    09:29:30.441 INFO  b.b.PluginDownloader - Download sonar-quality-index-plugin-1.1.3.jar
    09:29:30.447 INFO  b.b.PluginDownloader - Download sonar-jacoco-plugin-1.2.jar
    09:29:30.472 INFO  b.b.PluginDownloader - Download sonar-jira-plugin-1.0.jar
    09:29:30.547 INFO  b.b.PluginDownloader - Download sonar-surefire-plugin-1.2.jar
    09:29:30.554 INFO  b.b.PluginDownloader - Download sonar-ldap-plugin-1.2.1.jar
    09:29:30.565 INFO  b.b.PluginDownloader - Download sonar-checkstyle-plugin-1.2.jar
    09:29:39.093 INFO  b.b.PluginDownloader - Download sonar-java-plugin-1.2.jar
    09:29:39.100 INFO  b.b.PluginDownloader - Download sonar-core-plugin-3.5.1.jar
    09:29:39.113 INFO  b.b.PluginDownloader - Download sonar-dbcleaner-plugin-3.5.1.jar
    09:29:39.118 INFO  b.b.PluginDownloader - Download sonar-cobertura-plugin-1.2.jar
    09:29:39.123 INFO  b.b.PluginDownloader - Download sonar-design-plugin-3.5.1.jar
    09:29:39.989 INFO  .s.b.b.TaskContainer - -------------  Executing Project Scan
    09:29:40.635 INFO  b.b.JdbcDriverHolder - Install JDBC driver
    09:29:40.638 INFO  b.b.JdbcDriverHolder - Download mysql-connector-java-5.1.18.jar
    09:29:40.663 INFO  .b.ProjectExclusions - Apply project exclusions

请问有人能解释一下吗..

最佳答案

以防像我这样的人在 Java 9+ 时代以“NoClassesFoundToAnalyze Exception”结束这个问题:

不再支持 Firebugs,因此它不适用于 Java 9+ - use Spotbugs instead .

关于java - Findbugs NoClassesFoundToAnalyze 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22028918/

相关文章:

Java将数据发送到初始化对象的类

java - 无法在 android studio 中打开图像(找不到文件)

jenkins-plugins - Jenkins findbug 阈值问题

java - Maven 与 Findbugs

gradle - sonar.jacoco.reportPaths 不适用于 Sonar gradle 插件

java - Action 之间的Struts2参数

java - 如何区分实现和规范

java - FindBugs 未经检查的转换投诉

java - “No information about coverage per test.” 来自带有 Jacoco Maven 构建的 Sonar

maven - SonarQube:从未计算过新代码的覆盖率