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?
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