由于API不兼容,声纳/ jacoco插件失败

时间:2016-11-04 22:08:06

标签: java maven sonarqube

我们使用声纳/ 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有什么不对吗?

1 个答案:

答案 0 :(得分:3)

在Java的原因

  

不受支持的major.minor版本52.0

使用的JVM的版本低于编译类文件的版本。 “52.0”指Java 8,此版本确实是required starting from SonarQube version 5.6。总而言之,我很确定SonarQube服务器已经升级,而你使用的Java低于8。