2016-05-20 25 views
1

Ich versuche ein riesiges Java EE 6 Projekt zu analysieren. Aufgrund des gegebenen Regelsatzes mit einigen älteren Regeln sind wir im Moment an Sonarqube 4.5.6 mit einigen speziellen Plug-Ins gebunden (Analyse läuft mit Sonar Scanner 2.5.1).SonarQube - Konfiguration von sonar-project.properties eines Java EE 6 Projekts, um WARN zu entfernen - Klasse nicht gefunden

Die Analyse des Projektes beendet, ohne versagen, aber es gibt viele Warnungen im Protokoll über die Klassen, die wie nicht

WARN - Class not found: javax.servlet.http.HttpServletRequest 

ähnliche Warnungen von anderen Plugins gefunden wurden ebenfalls berichtet. Also habe ich mich umgesehen und einen Workaround gefunden, indem ich den Pfad zu den Java EE 6 .jars zur sonar.java.libraries Konfiguration in der sonar-project.properties Datei hinzugefügt habe. Jetzt habe ich die Warings (außer einigen Klassen in org.apache.commons.io und org.apache.commons.fileupload - wo auch immer das entsprechende .jar sein mag) los.

Dies funktioniert auf meinem lokalen Rechner, aber der echte Sonar-Server ist woanders, wo keine Java EE 6 vorhanden ist. Ich hatte mir also überlegt, die entsprechenden .jars in ein Verzeichnis zu kopieren und auf das Verzeichnis in der sonar.java.libraries zu verweisen.

Mein Problem: Wie finde ich heraus, welche .jars tatsächlich von der Sonaranalyse verwendet werden? Ich möchte nicht Tausende von Dateien kopieren, wenn tatsächlich nur zehn benötigt werden.

Gibt es versteckte Log-Dateien, die von sonarqube oder ähnlichem geschrieben wurden? Irgendeine andere Idee?

Antwort

1

Die Warnung kommt von dem Java-Analysator, der Ihnen mitteilt, dass einige .class-Dateien nicht gefunden werden konnten. Was Sie als Workaround beschreiben, ist die richtige Lösung, um genauere Ergebnisse aus Ihrer Analyse zu erhalten.

Ihre Frage ist: wo kann ich das Glas finden, das den Klassen entspricht, die als fehlend gewarnt werden?

SonarQube Java-Analyzer kann Ihnen das nicht sagen (denn wenn es könnte, dann würde es versuchen, die Klassen zu finden). Ich würde dir empfehlen, in http://www.findjar.com/ einige Klassennamen nachzuschlagen und zu sehen, welche Abhängigkeitsgläser benötigt werden, und sie dünn hinzufügen.

+0

Danke. In meiner Eclipse-basierten Umgebung hat es sich als am effizientesten erwiesen, Open Type (shift-ctrl-T) zu verwenden und dort nach der fehlenden Klasse zu suchen - es wird die entsprechende .jar angezeigt, die ich dann in meine Eigenschaftendatei aufnehmen kann - Auf diese Weise fand ich meine Handvoll .jars, die ich brauchte – outofmind