环境详细信息:
- 声纳Qube 5.6
- Apache Maven 3.3.9
- Java 版本:1.7.0_09
我将SonarQube插件与java maven项目集成在一起,就像在pom中一样.xml
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.0.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
执行目标时:mvn sonar:sonar -Dsonar.host.url=<url>
获取异常:
[错误] 无法在项目 example-java-maven 上执行目标 org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.2:sonar (default-cli): Execution default-cli of goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.2:sonar failed: 执行 org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.2:sonar 时遇到 API 不兼容: java.lang.UnsupportedClassVersionError: org/sonar/batch/bootstrapper/EnvironmentInformation: 不支持的主要版本52.0 [错误] ----------------------------------------------------- [错误] realm = plugin>org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.2
SonarQube 5.6 至少需要 Java 8(请参阅要求)。请注意,这不仅是服务器端的要求,也是运行分析的客户端的要求。
就像他评论中提到的agabrys一样,Unsupported major.minor
是一个经典的Java错误(请参阅此线程)。
我自己也遇到了这个问题。我的解决方案,因为我正在开发的代码和平台目前只使用 Java 7,并且不能使用 Java 8,我决定启动以前的版本/标签 (5.5):
请参阅此处的标签:hub.docker.com 的声纳奎贝标签
docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube:5.5
你至少需要JDK 1.8。阅读有关major.minor
版本的更多信息:如何修复java.lang.UnsupportedClassVersionError:不支持的主要版本。