当前位置: 首页 > 知识库问答 >
问题:

SONARQUE在主AST扫描期间可能“未找到类”

杨景山
2023-03-14

我的设置:

  • 这可能是5.1。1
  • Sonar Maven插件2.6(也尝试了2.7和3.6)
  • jdk1.7。0_51

错误示例:

16:00:54 [INFO] [23:00:54.219] Sensor JavaSquidSensor
16:00:55 [INFO] [23:00:55.030] Java Main Files AST scan...
16:00:55 [INFO] [23:00:55.030] 1532 source files to be analyzed
16:00:58 [ERROR] [23:00:57.927] Class not found: javax.annotation.Nullable
16:00:58 [ERROR] [23:00:57.928] Class not found: javax.annotation.CheckReturnValue
16:00:58 [ERROR] [23:00:58.114] Class not found: javax.annotation.Nullable

根据这个stackoverflow问题,javax.annotation应该是java 1.7及以上版本的一部分。此外,我试图把它放在本地的maven存储库,但没有帮助。

声纳在哪里找到这个包裹?有人帮忙吗?!?

更新:

  • 我尝试修改声纳maven-plugin以包含对javax.annotation的依赖
  • 我试着把依赖性放在我的专家的settings.xml
  • 升级我的JDK到1.8没有帮助。

共有3个答案

长孙淳
2023-03-14

这更像是对最新答案的补充:

我看到类似的问题和添加谷歌findbugs依赖项的项目依赖帮助。类似的问题发生与joda转换喜欢

[ERROR][20:44:25.247]未找到类:org.joda.convert.ToString

所以我也加了一句

    `<dependency>
        <groupId>org.joda</groupId>
        <artifactId>joda-convert</artifactId>
        <version>1.8.1</version>
        <scope>provided</scope>
    </dependency>`

但是请注意,我将作用域设置为提供,以防止将这些新的依赖项添加到生成的war文件中。

然而,我仍然想知道为什么会出现这些错误,因为所有分析过的类似乎都没有使用这些注释?

沈树
2023-03-14

要避免向项目中添加特定的依赖项,请定义如下配置文件:

    <profile>
        <id>sonarqube</id>
        <dependencies>
            <dependency>
                <groupId>org.joda</groupId>
                <artifactId>joda-convert</artifactId>
                <version>1.2</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
                <version>3.0.0</version>
            </dependency>
        </dependencies>
    </profile>

然后用如下命令运行声纳分析

mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.1:sonar -Psonarqube,sonarqube-dev

sonarqube-dev配置文件在我的~/. m2/settings.xml中定义,它只是指定我的开发环境SonarQube安装在哪里

    <profile>
        <id>sonarqube-dev</id>
        <properties>
            <!-- no direct db connections in new sonar -->
            <sonar.host.url>
                http://localhost:9000/
            </sonar.host.url>
        </properties>
    </profile>

所有这些都取得了什么成就?

  • sonarqube分析特定依赖项不会不必要地污染项目
丁正阳
2023-03-14

根据http://docs.oracle.com/javase/7/docs/api/index.html?javax/annotation/package-summary.html您期望的类不是JDK 7的一部分。

您正在寻找的类是在这里启动的GoogleJSR-305实现的一部分https://code.google.com/p/jsr-305/source/browse/trunk/ri/src/main/java/javax/annotation/Nullable.java?r=24并移动到Findbugs:

<dependency>
  <groupId>com.google.code.findbugs</groupId>
  <artifactId>jsr305</artifactId>
  <version>3.0.0</version>
</dependency>

根据https://jcp.org/en/jsr/detail?id=305JSR-305已完成,但处于Hibernate状态,尚未添加到JDK版本中。

希望能有帮助。

 类似资料:
  • 问题内容: 我的设置: Sonarqube 5.1.1 Sonar-Maven插件2.6(也尝试过2.7和3.6) JDK 1.7.0_51 错误示例: 根据这个问题,javax.annotation应该是Java1.7及更高版本的一部分。此外,我尝试将其放在本地Maven存储库中,但没有帮助。 那么,Sonar试图在哪里找到这个软件包?有帮助吗?!? 更新: 我试过修改sonar-maven-p

  • 问题内容: 在AST扫描过程中,我正在寻找一个文件: (路径名称已更改为匿名) Java类非常简单,仅包含几个注释,可能可以针对Java 6进行编译。我在SonarQube 5.6中使用Java插件的4.0版。 是否想到为什么会这样? 问题答案: 我能够解决此问题。扫描使用SonarQube插件在Jenkins上运行。同时在同一工作空间中触发了第二个作业,这导致工作空间被Jenkins作业清除(已

  • 问题内容: 我收到以下异常。 java.util.NoSuchElementException:找不到行 我在编写一个需要从文本文件读取的较大程序时遇到了此错误,因此决定进行测试。 而且我仍然得到例外。我在与名为stricts.txt的类相同的文件夹中有一个文本文件,其中包含文本。我究竟做错了什么? 问题答案: 新的File(“ restrictions.txt”)将在应用程序的“开始目录”中查找

  • 我有3台Android设备,三星Galaxy S3手机,三星Tab4和Verizon OEM平板电脑。Verizon OEM平板电脑不支持BLE、API 17。我从android开发者网站安装了“BLE设备扫描”,并在Galaxy S3上运行。它只显示Verizon平板电脑是找到的设备。当我在三星Tab4上运行相同的应用程序时,它只显示Galaxy S3作为找到的设备。如果我只看Galaxy S3

  • 我正在使用sonar maven插件触发java代码分析。 声纳转轮卡住了一个java文件处理。控制台上的最后一条消息读取JavaAST扫描和进程卡在... SonarQube版本:7.3.0 Sonar maven插件版本:3.6。0.1398(最新版本),但已尝试使用3.4。1.1168也是如此 日志如下所示: OOM异常堆栈跟踪: 几个小时后,它会抛出内存不足异常 顺便说一下,这个代表了po

  • 我对的体验非常糟糕,因为我使用的是和。所以我不能做扫描仪的程序。我是新手,所以请帮助我,“找不到”。这是我到目前为止的代码。