小编典典

在主要AST扫描期间,SonarQube“未找到类”

java

我的设置:

  • Sonarqube 5.1.1
  • Sonar-Maven插件2.6(也尝试过2.7和3.6)
  • JDK 1.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

根据这个问题,javax.annotation应该是Java1.7及更高版本的一部分。此外,我尝试将其放在本地Maven存储库中,但没有帮助。

那么,Sonar试图在哪里找到这个软件包?有帮助吗?!?

更新:

  • 我试过修改sonar-maven-plugin以包括对javax.annotation的依赖
  • 我尝试将依赖项放入我的Maven的settings.xml中
  • 将我的JDK升级到1.8并没有帮助。

阅读 225

收藏
2020-11-16

共1个答案

小编典典

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

您要查找的类是Google
JSR-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=305的描述,JSR-305已完成,但处于
休眠 状态,尚未添加到JDK版本中。

希望能帮助到你。

2020-11-16