环境细节:
-
SonarQube 5.6
-
Apache Maven 3.3.9
-
Java版本:1.7.0_09
我将SonarQube插件与pom.xml中的java maven项目集成在一起
<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>
获得例外:
[错误]无法执行目标org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.2:项目示例中的声纳(default-cli)-java-maven:目标org.sonarsource的执行default-cli . scanner.maven:sonar-maven-plugin:3.0.2:声纳失败:执行org.sonarsource.scanner.maven时遇到API不兼容:sonar-maven-plugin:3.0.2:sonar:java.lang.UnsupportedClassVersionError: org / sonar / batch / bootstrapper / EnvironmentInformation:不支持的major.minor版本52.0 [ERROR] ------------------------------- ---------------------- [ERROR] realm = plugin> org.sonarsource.scanner.maven:sonar-maven-plugin:3.0.2
4 回答
SonarQube 5.6至少需要Java 8(参见requirements) . 请注意,这不仅仅是服务器端的要求,在运行分析的客户端也需要它 .
就像他的评论中提到的agabrys一样,
Unsupported major.minor
是一个典型的Java错误(参见this thread) .我自己也遇到了这个问题 . 我的解决方案,因为我的代码和平台正在开发中,目前只使用Java 7,不能使用Java 8,我决定使用以下命令启动以前的发行版/标记(5.5):
在此处查看标签:Tags for sonarqube at hub.docker.com
docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube:5.5
您至少需要JDK 1.8 . 阅读更多关于
major.minor
版本的信息:How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version为了进一步扩展agabrys和Nicolas B的答案:
您需要访问oracle的网站并下载版本8的jdk .
并配置jenkins'
config.xml
,它通常位于/var/lib/jenkins
并添加一个jdk:在该部分 . 或者您可以在管理jenkins - >全局工具配置的jenkins网站中添加它 .