webentwicklung-frage-antwort-db.com.de

Bitte stellen Sie mit sonar.Java.binaries kompilierte Klassen Ihres Projekts bereit

Ich kämpfe mit einem Fehler bei einem Multi-Modul-Projekt. Die Strategie ist einfach und sieht folgendermaßen aus:

 root 
   module a
   module b
   module c
   pom.xml

Nachdem Sie die Maven-Befehlszeile verwendet haben: clean sonar:sonar deploy

Ich bin dieser Fehler: 

Ziel konnte nicht ausgeführt werden org.sonarsource.scanner.maven: sonar-maven-plugin: 3.3.0.603: sonar (default-cli) zu Projekt X: Bitte geben Sie kompilierte Klassen Ihrer .__ an. Projekt mit der Eigenschaft sonar.Java.binaries -> [Hilfe 1]

EDIT: Hier ist die Struktur meines 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

Sie führen Ihre Maven-Schritte in der falschen Reihenfolge aus:

  • clean - Löscht alle vorherigen Build-Ausgaben
  • sonar:sonar - Analyse ausführen (für die Build-Ausgabe erforderlich ist)
  • deploy - bauen & etc ...

Versuchen Sie es stattdessen:

mvn clean deploy sonar:sonar

Wenn Sie jetzt Einwände dagegen erheben, dass Sie das Glas nicht wirklich "bereitstellen" möchten, bis der geänderte Code das Quality Gate passiert, nun ... das erfordert einen anderen Workflow:

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

Die Einzelheiten dieser letzten beiden Schritte hängen von Ihrer CI-Infrastruktur ab. Aber für Jenkins ist Schritt # 2 gut dokumentiert

Beim Aufruf von Standalone SonarQube Analysis erhielt ich den gleichen Fehler als Vorbereitungsschritt für einen Jenkins-Job, den ich behoben habe, indem ich sonar.Java.binaries=**/target/classes zusammen mit anderen SonarQube Analysis-Eigenschaften hinzufügte:

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

Sie können das beheben, indem Sie sonar.Java.binaries mit dem Maven-Tool übergeben.

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

0
SAN

Bei Java befinden sich die Binärdateien im Zielordner. Deshalb sollten Sie mvn clean install sonar:sonar verwenden, um sicherzustellen, dass Ihr Projekt kompiliert ist und sich im Zielordner befindet. 

Sonar scannt Ihre binären Klassen. 

0
Gene