web-dev-qa-db-fra.com

Veuillez fournir les classes compilées de votre projet avec sonar.Java.binaries

Je me bats avec une erreur avec un projet multi-modules, la structure est simple, elle ressemble à ceci:

 root 
   module a
   module b
   module c
   pom.xml

Après avoir utilisé la ligne de commande maven: clean sonar:sonar deploy

Je suis cette erreur: 

Échec d'exécution du but org.sonarsource.scanner.maven: sonar-maven-plugin: 3.3.0.603: sonar (default-cli) sur le projet X: Veuillez fournir les classes compilées de votre fichier projet avec propriété sonar.Java.binaries -> [Aide 1]

EDIT: Voici la structure de mon pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project
    xmlns="http://maven.Apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
    <groupId>groupeId</groupId>
    <artifactId>artifactId</artifactId>
    <version>version</version>
    <packaging>pom</packaging>
    <name>${project.artifactId}-parent</name>
    <description>description</description>
    <build>
        <plugins>
            <plugin>
                <groupId>org.sonarsource.scanner.maven</groupId>
                <artifactId>sonar-maven-plugin</artifactId>
                <version>3.3.0.603</version>
            </plugin>
        </plugins>
    </build>
    <modules>
        <module>module a</module>
        <module>module b</module>
        <module>module c</module>
    </modules>
</project>
12
CommonPeople

Vous exécutez vos étapes Maven dans le mauvais ordre:

  • clean - efface toutes les sorties précédentes
  • sonar:sonar - analyse d'exécution (ce qui nécessite une sortie de génération)
  • deploy - construire & etc ...

Essayez ceci à la place:

mvn clean deploy sonar:sonar

Maintenant, si vous êtes sur le point de vous opposer à ce que vous ne souhaitiez pas réellement "déployer" le fichier jar jusqu'à ce que/à moins que le code modifié ne passe par Quality Gate, eh bien ... cela nécessite un flux de travail différent:

mvn clean package sonar:sonar
// check quality gate status
// if (qualityGateOk) { deploy }

Les détails de ces deux dernières étapes dépendront de votre infrastructure CI. Mais pour Jenkins, l’étape 2 est bien documentée

La même erreur s'est produite lors de l'appel de SonarQube Analysis autonome en tant qu'étape de pré-génération du travail Jenkins, que j'ai corrigée en ajoutant sonar.Java.binaries=**/target/classes avec d'autres propriétés SonarQube Analysis, comme suit:

sonar.projectKey=TEST-PROJECT
sonar.projectName=TEST-PROJECT
sonar.projectVersion=1.0
sonar.sources=src/main/Java/
sonar.language=Java
sonar.Java.binaries=**/target/classes  
18
Arpit

Vous pouvez résoudre ce problème en passant sonar.Java.binaries à l'aide de l'outil maven.

mvn sonar: sonar -Dsonar.Host.url = http: // localhost: 9000 -Dsonar.login = faeef1e48b8d00290a0f3cc00021720baf1ca4dd -Dsonar.Java.binaries = D:\aiwb_s **

0
SAN

Pour Java, les fichiers binaires se trouvent dans le dossier cible. C'est pourquoi vous devez utiliser mvn clean install sonar:sonar pour vous assurer que votre projet est compilé et situé dans le dossier cible. 

Sonar analyse vos classes binaires. 

0
Gene