无法执行目标 org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar。涉及 IT 技术,可能是一个问题标题。

12

请问有谁能帮我解决下面的错误。

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

  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

在控制台窗口中,我遇到了错误。

[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 
7个回答

10

从3.2版本开始,SonarQube Maven插件需要Java 8。如果您使用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


仍然出现相同的错误[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 : Uns upported major.minor version 52.0 - Mahesh G
是的,我已经进行了干净安装,但让我们尝试通过执行“项目-> Maven-> 更新Maven项目”来更新,然后再通知您。 - Mahesh G
是的,抱歉我的问题离题了,因为这是一个纯粹的maven问题。您确定您更改的pom是用于运行maven的那个吗?如果您指定要使用3.0.2插件,我看不出他仍在使用3.2的原因。您确定您添加的插件片段是活动的吗?在实际构建中而不仅仅是插件管理,并且在活动配置文件中? - Zzirconium
是的,我也在想为什么会发生这种情况,但正如@ G. Ann所说,安装Java 8后它可以工作。感谢您的快速回答!!我已经点赞了您的回答。 - Mahesh G

8

无论您使用什么编译器,SonarQube分析都应该使用特定的Java版本来运行。
你只需要为编译分析使用不同的JDK版本

  • 对于SonarQube 6.* 兼容性,请确保JAVA_HOME=/path/to/java8
  • 对于SonarQube 9.* 兼容性,请确保JAVA_HOME=/path/to/java11

当然,@G. Ann - SonarSource团队,我会检查这个方法并回复更新。谢谢! - Mahesh G
2
谢谢!安装Java 8后,它像魔法一样奏效了!!现在我想要一个永久性的解决方案,使我的代码可以编译为1.7版本,而我的SonarQube则使用Java 8。您能告诉我如何做到这一点吗?-target 1.7。请帮帮我。 - Mahesh G
这个能在Java 17下工作吗?针对Java 17出现问题:在执行org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184:sonar时遇到了API不兼容的情况:java.lang.ExceptionInInitializerError: null - Ragas

1
在我的情况下,我有一个父POM,其中包含以下内容:

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

我已经在我的子POM中的pluginManagement中添加了自己的版本,但这并没有起作用,我不得不将插件添加到<build><plugins>节点而不是<build><pluginManagement><plugins>。只有这样才能使用新的版本。
也许这可以帮助某些人。

0

在使用Maven->更新项目后,我使用mvn clean installmvn clean compile成功完成了编程。


0
对我来说,我必须手动进入SonarCloud并选择“分析新项目”。

0
最近在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文件中添加默认的DB设置。
 <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>

0

我尝试了下面的代码,它在我的电脑上运行正常。

        <plugin>
            <groupId>org.sonarsource.scanner.maven</groupId>
            <artifactId>sonar-maven-plugin</artifactId>
            <version>3.8.0.2131</version>
        </plugin>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.5</version>
            <executions>
                <execution>
                    <id>prepare-agent</id>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>report</id>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.2</version>
            <configuration>
                <skipTests>true</skipTests>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>sonar-maven-plugin</artifactId>
            <version>3.0.2</version>
        </plugin>

那么

mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install  

那么

mvn sonar:sonar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接