SonarQube支持Java9吗?

问题实际上是双重的:

  • 可以使用SonarQube 分析 Java9项目吗?
  • SonarQube本身可以在Java9 JVM上运行吗?

Java8的同样问题

TL; DR: 是的! 它支持分析,显然是从2017年7月3日开始 (但他们拼命试图隐瞒事实……)

截至目前(2017-10-24,SonarQube版本6.6),SonarQube 可以使用SonarJava 4.11或更新版本来分析Java9代码 ,但是在Java9 JVM上运行并不是官方支持的

SonarQube Java插件兼容性

SonarJava页面声明它支持Java版本到10:

支持的版本,框架和特殊分析

  • Java语言版本到10

SonarJava 4.11发布消息还指出:

SonarSource团队很高兴地宣布发布SonarJava版本4.11。

此版本引入了对Java 9项目的支持 。 但是,这是什么意思?

这意味着能够解析由jigsaw项目引入的module-info.java源文件。

此外,同一页明确列出对以下内容的支持

  • Try-With-Resources增强function
  • 接口私有方法
  • 钻石运营商扩展
  • JaCoCo报告了Java9类

SonarQube平台兼容性

链接

支持的平台

SonarQube Java分析器能够分析任何类型的Java源文件,无论它们遵循的Java版本如何。 但SonarQube分析和SonarQube服务器需要特定版本的JVM。

支持:

  • Oracle JRE7❌
  • Oracle JRE8✓
  • Oracle JRE 9❌
  • OpenJDK 7❌
  • OpenJDK8✓
  • OpenJDK 9❌
  • IBM JRE❌
  • GCJ❌
  • Oracle JRockit❌

链接:

  • 用于搜索字符串“java 9”的 SonarQube JIRA队列
  • 用于搜索字符串“java9”的 SonarQube JIRA队列
  • SonarQube JIRA门票“MMF-833:让SonarJava支持Java 9项目的分析”