2016-11-04 89 views
0

,我们有我们的代码覆盖率使用声纳/ jacoco,和一个它停止工作,并且错误消息:声纳/ jacoco插件失败,因为API不兼容

未能执行目标org.sonarsource.scanner .maven:sonar-maven-plugin:3.2:项目中的sonar(default-cli)prism-parent-pom:目标的执行默认cli org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:声纳失败:由于API不兼容,无法在插件'org.sonarsource.scanner.maven:sonar-maven-plugin:3.2'中加载mojo'sonar':org.codehaus.plexus.component.repository.exception.ComponentLookupException:org/sonarsource/scanner/maven/SonarQubeMojo:不受支持的major.minor版本52.0

经过日志之前和之后的一些痛苦的比较,我发现sonar-maven-plugin从版本3.0.2更改为3.2,即使没有更改pom文件。

我也运行'mvn依赖:树',并没有看到声纳的任何依赖。

最后我更新了POM指定声纳的Maven插件版本来执行它使用曾经工作过的版本,但它仍然没有帮助,这是我的父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有什么问题吗?

回答

3

不受支持的版本MAJOR.MINOR 52.0

Java的原因是使用JVM是比它的类文件进行编译版本比版本。 “52.0”是指Java 8,这个版本的确是required starting from SonarQube version 5.6。总而言之,我非常肯定SonarQube服务器已经升级,而您使用的Java低于8.