web-dev-qa-db-fra.com

Échec d'exécution de l'objectif org.sonarsource.scanner.maven: sonar-maven-plugin: 3.2: sonar

Quelqu'un peut-il m'aider à trouver une solution à l'erreur ci-dessous.

Voici la version des composants à configurer

  1. SonarQube 5.1.2
  2. Soanr-Runner 2.4
  3. Java 1.7 [je dois utiliser 1.7 uniquement car mon code ne prend en charge que 1.7]
  4. mavn 3.3.9
  5. sonar-cobertura-plugin-1.6.3
  6. sonar-findbugs-plugin-3.3
  7. cobertura 2.6

commande d'exécution

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

Dans la fenêtre de la console, je reçois une erreur

[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 
4
Ron

Indépendamment de ce que vous compilez avec votre code, l'analyse SonarQube doit être exécutée avec Java 8. Vous devez simplement utiliser différentes versions de JDK pour la compilation et l'analyse. Soit cela, soit tout faire avec Java 8 et -target 1.7.

Depuis la 3.2, le plugin SonarQube maven nécessite Java 8. Vous devez utiliser la version 3.0.2 pour Java 7.

Vous devez ajouter explicitement cette déclaration à votre pom:

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

Parce que si vous ne le faites pas, par défaut, ce plugin utilise la dernière version du plugin (3.2), d'où votre erreur.

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

6
Zzirconium

Dans mon cas, j'avais un parent pom avec

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

J'ai ajouté ma propre version également dans pluginManagement dans mon pom enfant mais cela n'a pas fonctionné j'ai dû ajouter le plugin au <build><plugins> nœuds au lieu de <build><pluginManagement><plugins>. Seulement alors, une nouvelle version plus récente avait été utilisée.

Peut-être que cela aide quelqu'un.

1
Christian

Récemment, installez l'image Sonorqube.5.12 dans le menu fixe et poussez le projet dans Sonorqube. Au départ, nous étions confrontés à des erreurs de console Maven comme version major.minor 52..

Plus tard, a été corrigé par l'étape ci-dessous pour moi.

Ajoutez ces plugins dans 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>

Ensuite, ajoutez la configuration de base de données par défaut dans le fichier ~/.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>
0
Ajay Kumar