我们使用声纳/ jacoco进行代码覆盖,其中一个停止工作,错误信息为:
无法执行目标org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar(default-cli)on project prism-parent-pom:执行default-cli of goal org.sonarsource.scanner.maven :sonar-maven-plugin:3.2:声纳失败:无法加载mojo'声纳'在插件' org.sonarsource.scanner.maven中:sonar-maven-plugin:3.2'由于API不兼容:org.codehaus.plexus.component.repository.exception.ComponentLookupException:org / sonarsource / scanner / maven / SonarQubeMojo:不支持的major.minor版本52.0
在对日志之前和之后进行了一些痛苦的比较后,我发现声纳-maven-plugin从版本3.0.2更改为3.2,即使pom文件没有变化。
我还运行了依赖:树'并且没有看到任何声纳的依赖性。
最后我更新了pom以指定sonar-maven-plugin版本来强制它使用以前工作的版本,但它仍然没有帮助,这是我的父pom
<profiles>
<profile>
<id>coverage-per-test</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.4.201502262128</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>default-prepare-agent-integration</id>
<phase>pre-integration-test</phase>
<goals>
<goal>prepare-agent-integration</goal>
<goal>prepare-agent</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<properties>
<property>
<name>listener</name>
<value>org.sonar.java.jacoco.JUnitListener</value>
</property>
</properties>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<properties>
<property>
<name>listener</name>
<value>org.sonar.java.jacoco.JUnitListener</value>
</property>
</properties>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.codehaus.sonar-plugins.java</groupId>
<artifactId>sonar-jacoco-listeners</artifactId>
<version>2.7</version>
<scope>test</scope>
</dependency>
</dependencies>
</profile>
</profiles>
我的pom有什么不对吗?
答案 0 :(得分:3)
在Java的原因
不受支持的major.minor版本52.0
使用的JVM的版本低于编译类文件的版本。 “52.0”指Java 8,此版本确实是required starting from SonarQube version 5.6。总而言之,我很确定SonarQube服务器已经升级,而你使用的Java低于8。