SonarQube Findbugs "braucht Quellen kompiliert werden"
Ich versuche, SonarQube findbugs arbeiten, aber wenn ich ihn starten will bekomme ich die Fehlermeldung: "Findbugs benötigt Quellen kompiliert werden. Bitte erstellen Sie Projekt-vor der Ausführung sonar und überprüfen Sie den Speicherort der kompilierten Klassen."
sonar.Quellen festgelegt ist, um einen Ordner mit all meinen src-Dateien und sonar.Binärdateien festgelegt ist, um einen Ordner mit allen meinen Klassen und jar-Dateien. Dieses layout arbeitet mit findbugs für eines meiner Projekte, aber auf der anderen bekomme ich die obige Fehlermeldung.
Dies ist die debug-Fehler bereitgestellt, wenn FindBugs wird nicht ausgeführt: http://pastie.org/9483921
Wie kann ich dieses Problem beheben, und gibt es einen bestimmten Ordner FindBugs benötigt Klassen/jars in zu arbeiten?
Dank.
- Haben Sie zusammengestellt, die Ihre Sachen mit debug-Informationen aktiviert (
-g
option javac) in beiden Fällen? Debug-Informationen erforderlich ist, und wenn die fehlen, können zu diesem Fehler führen. - Dies ist die debug-Fehler bereitgestellt, wenn FindBugs wird nicht ausgeführt: pastie.org/9483921 | Es gibt keine Fehler, wenn FindBugs arbeitet an einem zweiten Projekt.
- Ja, aber haben Sie überprüft, die debug-compiler-Einstellung? Wenn Sie erstellen mit Ant, dann Debuggen, die standardmäßig deaktiviert ist.
- Können Sie zeigen Sie mir, wo diese Einstellung ist? Das meiste ist neu für mich, so dass ich entschuldige mich, wenn ich bin ein wenig langsam.
- Wo die Einstellung ist, hängt davon ab, wie Sie die Kompilierung der Quellen. Welche IDE benutzt du? Sind Sie mit SonarQube aus der IDE oder über ein build-tool wie Ant, Maven oder Gradle?
- Baue ich die Dateien mit Hilfe von ant dann laufen sonar runner über die .sh-Skript in der sonar runner bin-Datei.
- Dann stellen Sie sicher, dass
debug="true"
angegeben ist, für die javac-task nennen Sie in Ihrer build.xml. Auch, nur um sicher zu sein, einedebuglevel
- Attribut nicht vorhanden sein sollte.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eigenschaft hinzufügen
Sonar-Konfiguration. Wenn Sie ar mit mehreren proyects zu erstellen, zu verwenden Koma separed.
sonar.java.binaries=.
Hoffe, es wird jemand helfen.Ich habe vor dem gleichen Problem in der Vergangenheit.
Überprüfen, dass Sie nicht über einen Ordner irgendwo unter src/main-Ordner mit nur einem
pkg-info.java
- Datei. Diese Dateien werden von javadoc-Dateien und sind somit nicht kompiliert. Aber der Ordner erstellt wird in target/classes, findbugs erkennt es findet aber keine.class
die einen Absturz verursacht, mit den "Bedürfnissen Quellen kompiliert werden" - Meldung.Die Lösung ist, entfernen Sie den Ordner mit der
pkg-info.java
- Datei oder fügen Sie echte java-Quellcode-Dateien (die erstellt werden, und machen findubgs glücklich.)Wenn Sie nicht wollen, zu kompilieren und zu verwenden, sonar-runner nach wie vor , können Sie erstellen Sie einen Ordner und legen Sie eine gültige java-Klasse vorhanden und ausführen wie folgt:
SonarQube benötigt source-code gebaut werden, bevor es analysiert es. Dies wird unterscheiden sich je nachdem, wie Sie bauen, aber prüfen Sie hier, und klicken Sie auf Ihr Gebäude-Plattform.
Beispiel: Wenn Sie den SonarQube zu analysieren, ein Projekt mit Maven, müssen Sie die folgenden Befehle in dieser Reihenfolge (vorausgesetzt, Sie folgte den Schritten, nach das maven-Konfiguration Seite, die verknüpft ist als option im ersten link):
So, Sie bauen den code vor jede sonar-Analyse durchgeführt werden kann. Beachten Sie auch, müssen Sie die Ausgabe dieser Befehle separat, und Sie sollten warten, bis die Installation vollständig abgeschlossen ist, bevor Sie ausgeführt sonar.
sonar Namen der Eigenschaft geändert haben, sehen http://docs.sonarqube.org/display/PLUG/Java+Plugin+und+Bytecode
z.B. sonar.java.binaries ersetzt sonar.binaries für die plugin-version > 2.5
Diese Feste meine findbugs Problem.