无法执行目标 org.sonarsource.scanner.maven:sonar-maven-plugin: 3.2:sonar

Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin: 3.2:sonar

任何人都可以帮助我解决以下错误。

以下是要配置的组件的版本

  1. SonarQube 5.1.2
  2. Soanr-Runner 2.4
  3. Java 1.7 [我只能使用 1.7,因为我的代码只支持 1.7]
  4. mavn 3.3.9
  5. sonar-cobertura-plugin-1.6.3
  6. sonar-findbugs-plugin-3.3
  7. cobertura 2.6

执行命令

mvn -fn -e org.sonarsource.scanner.maven:sonar-maven-plugin:RELEASE:sonar -Dsonar.jdbc.url="jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance" -Dsonar.host.url=http://localhost:9000 -DskipTests

在控制台中 Window 我收到错误

[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:
3.2:sonar (default-cli) on project NWT_Core: Execution default-cli of goal org.s
onarsource.scanner.maven:sonar-maven-plugin:3.2:sonar failed: Unable to load the
 mojo 'sonar' in the plugin 'org.sonarsource.scanner.maven:sonar-maven-plugin:3.
2' due to an API incompatibility: org.codehaus.plexus.component.repository.excep
tion.ComponentLookupException: org/sonarsource/scanner/maven/SonarQubeMojo : Unsupported major.minor version 52.0 

从 3.2 开始,SonarQube maven 插件需要 Java8。 Java 7.

你必须使用 3.0.2 版本

您必须明确地将此语句添加到您的 pom 中:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>sonar-maven-plugin</artifactId>
    <version>3.0.2</version>
</plugin>

因为如果你不这样做,默认情况下这个插件使用最新版本的插件 (3.2),因此你的错误。

http://docs.sonarqube.org/display/HOME/Frequently+Asked+Questions#FrequentlyAskedQuestions-ShouldIlockversionofSonarQubeMavenplugininmypom.xml?

无论您用什么编译您的代码,SonarQube 分析都应该是运行,具有特定的Java 版本.
您只需要为编译分析.[=使用不同的JDK版本 10=]

  • 为了 SonarQube 6.* 兼容性],确保 JAVA_HOME=/path/to/java8
  • 为了 SonarQube 9.* 兼容性],确保 JAVA_HOME=/path/to/java11

在我的例子中,我有一个 parent pom 和

<build>
  <pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.codehaus.sonar</groupId>
        <artifactId>sonar-maven-plugin</artifactId>
        <version>2.5</version>
      </plugin>
    </plugins>
  </pluginManagement>
</build>

我也在我的 child pom 中的 pluginManagement 中添加了我自己的版本,但这没有用我不得不将插件添加到 <build><plugins> 节点而不是 <build><pluginManagement><plugins>。才用了新的更新版本。

也许这对某人有帮助。

近期在docker安装Sonorqube.5.12镜像,并将项目推送到Sonorqube中。最初我们遇到了一些 Maven 控制台错误,例如 major.minor version 52.0.

后来,我已经通过以下步骤修复了。

在maven中添加这个插件。

  <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>sonar-maven-plugin</artifactId>
            <version>2.6</version>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
        </plugin>
    </plugins>

接下来,在 ~/.m2/settings.xml 文件中添加默认数据库设置

 <profile>
    <id>sonar</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <sonar.jdbc.url>jdbc:h2:tcp://localhost:9092/sonar</sonar.jdbc.url>
            <sonar.host.url>http://localhost:9000</sonar.host.url>
            <sonar.jdbc.username>sonar</sonar.jdbc.username>
            <sonar.jdbc.password>sonar</sonar.jdbc.password>
            <sonar.pdf.username>admin</sonar.pdf.username>
            <sonar.pdf.password>admin</sonar.pdf.password>
        </properties>
    </profile>