2016-11-04 30 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.