我尝试在Sonar报告严重警告或拦截器警告的情况下使Gradle构建失败。
我有一个带有声纳gradle插件的buildscript部分:
buildscript {
dependencies {
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'
}
}
我在其他插件中应用sonarqube插件:
apply plugin: 'java'
apply plugin: 'org.sonarqube'
我有一个sonarqube部分的属性:
sonarqube {
properties {
property 'sonar.host.url', 'http://some.host:8743'
property 'sonar.projectKey', 'some-project'
property 'sonar.login', '${env.SONAR_TOKEN}'
property 'sonar.qualitygate.wait', 'true'
}
}
我在单元测试后运行sonarqube:
tasks.withType(Test) {
finalizedBy 'sonarqube'
}
我有这样的问题:
org/sonar/batch/bootstrapper/EnvironmentInformation has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
我的项目必须在JDK8上构建。升级到JDK11不是一个选项(这是一个供应商约束,我们不能选择要使用的JDK)。我该怎么做才能使我的构建工作?
我不愿意将构建分成两部分(1个JDK8构建用于编译和测试,1个JDK11构建仅用于Sonar),因为这意味着第一个构建可以成功,而另一个失败。
我使用的是SonarQube社区版版本9.8(内部版本号63668)。
2条答案
按热度按时间pes8fvy91#
这是不可能的,您不能将新版本的SonarQube与旧版本的JDK一起使用。
用于运行SonarScanner的Java-SonarQube 8.9中的Java 8,SonarQube 9.0及更高版本中的Java 11
因此,如果您无法将JDK升级到JDK 11,则必须将SonarQube降级到8.9
没有办法让它与SonarQube 9.x一起工作
k4aesqcs2#
在您的情况下,我将在CI管道的单独阶段(使用不同的Java版本)使用CLI-version of SonarScanner