findbugs keine erzeugt keine findbugsXml.xml

Hein_nieH

Bekanntes Mitglied
Hallo,

ich habe ein neues Problem bei meiner Projekteinrichtung mit dem plugin findbugs.
das Plugin erzeugt keine xml-Datei

Zum Build benutze ich jenkins.
in der pom.xml habe ich das plugin wie folgt eingebunden.

Als Goal habe ich definiert: clean install

Hat jemand eine Idee, wo ich and der pom.xml noch etwas ändern kann.
Es wäre für mich schon ein kleiner Fortschritt, wenn das plugin überhaupt die Datei "findbugsXml.xml" erzeugt.

Mit freundlichen Gruessen
Hein_nieH

XML:
            <!-- findbugs -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
                <version>2.5.2</version>
                   <configuration>
                    <!--
                        Enables analysis which takes more memory but finds more bugs.
                        If you run out of memory, changes the value of the effort element
                        to 'low'.
                    -->
                    <effort>Max</effort>
                    <!-- Reports all bugs (other values are medium and max) -->
                    <threshold>Low</threshold>
                   
                    <failOnError>false</failOnError>
                                       
                    <!-- Produces XML report -->
                    <xmlOutput>true</xmlOutput>
                   
                    <!-- XML directory -->
                    <!--
                    <findbugsXmlOutputDirectory>
                        ${project.build.directory}/findbugs
                    </findbugsXmlOutputDirectory>
                    -->
                   
                </configuration>
               
                <executions>
                    <!-- Ensures that FindBugs inspects source code when project is compiled. -->
                    <execution>
                        <phase>verify</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
 

KonradN

Super-Moderator
Mitarbeiter
Was wird denn bei dem mvn clean install ausgegeben? Findet sich da der Aufruf vom plugin? Was für Meldungen gibt es?

Falls nichts aufgerufen wird / sich nichts findet: Der Auszug ist in <plugins> und nicht in <pluginManagement><plugins>?

Du hast das target Verzeichnis durchgesehen? Die Datei sollte in target/site sein, wenn ich mich nicht irre.

Und die Version vom Plugin ist nicht aktuell - die aktuelle Version vom Plugin ist 3.0.5.
 

Hein_nieH

Bekanntes Mitglied
Hallo KonradN,

ich habe jetzt auf die aktuelle plugin-Version 3.0.5 von findbugs umgestellt.
Als goal habe ich in der pom.xml eingestellt: clean install

beim build in jenkins erhalte ich zum plugin folgende Meldung:
(mein Projekt heisst DVD_Viewer)

[FindBugs] Using default pattern '**/findbugsXml.xml' since user defined pattern is not set
[FindBugs] [-ERROR-] No files found for pattern '**/findbugsXml.xml'. Configuration error?
[FindBugs] Searching for all files in 'C:\Users\E7470\.jenkins\workspace\DVD_Viewer' that match the pattern '**/findbugsXml.xml'
[FindBugs] Skipping post processing
[FindBugs] No filter has been set, publishing all 0 issues
[FindBugs] Repository miner is not configured, skipping mining
[FindBugs] Reference build recorder is not configured
[FindBugs] Obtaining reference build from same job (DVD_Viewer)
[FindBugs] Using reference build 'DVD_Viewer #203' to compute new, fixed, and outstanding issues
[FindBugs] Issues delta (vs. reference build): outstanding: 0, new: 0, fixed: 0
[FindBugs] No quality gates have been set - skipping
[FindBugs] Health report is disabled - skipping
[FindBugs] Created analysis result for 0 issues (found 0 new issues, fixed 0 issues)
[FindBugs] Attaching ResultAction with ID 'findbugs' to build 'DVD_Viewer #208'.

Damit das plugin auch wirklich etwas findet habe ich das Projekt um nachstehende Dummy-Klasse erweitert:

Java:
public class DummyFindubgs
{
    private String getXyz()
    {
        return null;
    }
} // class

Die pom.xml sieht jetzt so aus
XML:
            <!-- findbugs -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
                <version>3.0.5</version>
                   <configuration>
                    <!--
                        Enables analysis which takes more memory but finds more bugs.
                        If you run out of memory, changes the value of the effort element
                        to 'low'.
                    -->
                    <effort>Max</effort>
                    
                    <!-- Reports all bugs (other values are medium and max) -->
                    <threshold>Low</threshold>
                    
                    <failOnError>false</failOnError>
                                        
                    <!-- Produces XML report -->
                    <xmlOutput>true</xmlOutput>
                    
                </configuration>

Es ist wirklich zum Verzweifeln :-(

Gruss Hein_nieH
 

Hein_nieH

Bekanntes Mitglied
Ich habe den build jetzt direkt von Eclipse aus gestartet (run as --> maven install) was dann auch funktioniert hat.
Hier wurde tatsächlich die Dateien findbugs.xml und findbugsXml.xml erzeugt.

Führe ich den Build in jenkins aus, so passiert nichts.
In jenkins wird der Build abgebrochen, wenn ich den execution block
im findbugs plugin angebe:

XML:
                 <executions>
                    <execution>
                        <phase>verify</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>

In jenkins rufe ich folgend Maven goals auf: clean install

Irgend etwas muss ich falsch machen nur was ....

Gruss Hein_nieH
 

khmarbaise

Mitglied
Welche version von Maven lokal vs. Maven version auf Jenkins? Weiterhin prüfen, wie schon angemerkt wurde, ob die Deklaration im pluginManagement oder im Bereich build->plugins->plugin gemacht wurde?? Bitte mal auch den Log output auf dem Jenkins hier posten...
 

Hein_nieH

Bekanntes Mitglied
Hallo khmarbaise,

ich habe jetzt spotbugs in die pom.xml aufgenommen, da findbugs nicht mehr weiter entwickelt wird.
Auch hier das gleiche Problem, das keine Reportdatei generiert wird.
Ich nutze derzeit:
Java Version 11.0.9
Maven (lokal) Version 3.6.3
Jenkins Version 2.249.3

Was ich nicht weiss ist welche Maven-Version Jenkins nutzt. Wie kann ich das herausfinden?

Gruss Hein_nieH
 

LimDul

Top Contributor
Maven version sollte egal sein.

So sieht es bei uns aus:

<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<configuration>
<xmlOutput>true</xmlOutput>
<threshold>Low</threshold>
<excludeFilterFile>spotbugs/exclusion-filter.xml</excludeFilterFile>
</configuration>
<executions>
<execution>
<id>spotbugs</id>
<phase>verify</phase>
<goals>
<goal>spotbugs</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Jacoco
Wichtig ist der Teil mit den executions - das in der Phase verify das Goal spotbug ausgeführt wird.
 

Hein_nieH

Bekanntes Mitglied
Hallo,

ich habe jetzt mal das SpotBugs-plugin eingefügt, so wie LimDul es beschrieben hat.
Auch hier wird beim Build in Jenkins ein Fehler angezeigt.

Mir gehen langsam die Ideen aus :-(

Gruss Hein_nieH

Code:
Downloaded from central: https://repo1.maven.org/maven2/org/apache/commons/commons-lang3/3.12.0/commons-lang3-3.12.0.jar (587 kB at 155 kB/s)
Downloaded from central: https://repo1.maven.org/maven2/junit/junit/4.13.2/junit-4.13.2.jar (385 kB at 101 kB/s)
Downloaded from central: https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils/3.5.1/plexus-utils-3.5.1.jar (269 kB at 71 kB/s)
[INFO] Fork Value is true
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  30.256 s
[INFO] Finished at: 2023-04-06T13:00:00+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Could not find resource 'spotbugs/exclusion-filter.xml'. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ResourceNotFoundException
Build step 'Maven Goals aufrufen' marked build as failure
[CheckStyleSpotBugs] Skipping execution of recorder since overall result is 'FAILURE'
Finished: FAILURE
 

KonradN

Super-Moderator
Mitarbeiter
Der Fehler steht da ja: Die Config gibt eine Datei an, die nicht existiert!

Du musst also auch die Datei exclusion-filter.xml bereit stellen (in einem Ordner spotbugs).

Erstell mal eine solche Datei mit dem folgenden Inhalt:
XML:
<FindBugsFilter>
    <Match>
        <!-- We store references we get from outside and we give stored references to the outside -->
        <!-- EI: May expose internal representation by returning reference to mutable object -->
        <!-- EI2: May expose internal representation by incorporating reference to mutable object -->
        <Bug code="EI,EI2"/>
    </Match>
</FindBugsFilter>

Das einfach nur einmal als ein Startpunkt ohne zu diskutieren, ob EI und EI2 für Dich ausgeklammert werden sollen oder nicht.
 

Hein_nieH

Bekanntes Mitglied
Hallo KonradN,

das die Datei nicht existiert und darin der Fehler liegt ist mir schon bewußt.

Das Problem ist warum die Datei nicht erzeugt wird.

In der plugin-Definition müsste es doch hier erfolgen:

<configuration>
<xmlOutput>true</xmlOutput>
<threshold>Low</threshold>
<excludeFilterFile>spotbugs/exclusion-filter.xml</excludeFilterFile>
</configuration>


Habe ich da ein Denkfehler?

Gruss Hein_nieH
 

LimDul

Top Contributor
exclusion-filter wird nicht erzeugt. Das ist eine Konfigurations Datei, die musst du anlegen, wenn du sie nutzen willst.
 

Hein_nieH

Bekanntes Mitglied
Hallo IchWeßEs,

wenn ich in jenkins als Goal einstell: clean compile spotbugs:check
dann kommt der gleiche Fehler

Stelle ich in jenkins ein clean compile
dann kommt kein Fehler, allerdings kommt von spotbugs der Hinweis,
das die Datei "spotbugs/exclusion-filter.xml" nicht gefunden wurde.

Gruss Hein_nieH
 

KonradN

Super-Moderator
Mitarbeiter
Wie @LimDul schon gesagt hast: Der Exclude Filter ist eine Konfiguration! Wenn Du angibst, dass er eine bestimmte Konfiguration verwenden soll, dann muss es diese auch geben!
 

IchWeißEs

Mitglied
Hallo IchWeßEs,

wenn ich in jenkins als Goal einstell: clean compile spotbugs:check
dann kommt der gleiche Fehler

Stelle ich in jenkins ein clean compile
dann kommt kein Fehler, allerdings kommt von spotbugs der Hinweis,
das die Datei "spotbugs/exclusion-filter.xml" nicht gefunden wurde.

Gruss Hein_nieH
Sorry, ich hatte spobugs und findbugs verwechselt.

Löse mal erst das mit dem exclude filter, danach mal

clean compile findbugs:check
oder
clean compile findbugs:findbugs
oder nur
clean compile check

ausprobieren.
 

KonradN

Super-Moderator
Mitarbeiter
Durch den execute Block in der plugin Konfiguration:
XML:
<executions>
    <execution>
        <id>spotbugs</id>
        <phase>verify</phase>
        <goals>
            <goal>spotbugs</goal>
        </goals>
    </execution>
</executions>

wird in der verify Phase von Maven das Ziel spotbugs des Plugins ausgeführt.

Daher ist es nicht notwendig, das separat auszuführen. Es ist lediglich notwendig, dass Maven auch die Phase verify durchläuft.

Maven – Introduction to the Build Lifecycle (apache.org)

Damit ist also eine Phase des build Lifecycle ab verify anzugeben und die wären: verify, install und deploy.

So also von jenkins ein mvn install oder mvn deploy ausgeführt wird, dann wird das Plugin auch ausgeführt.

Und das ist ja auch nicht das Problem, denn zu der Ausführung kommt es ja auch, nur eben läuft die Ausführung auf einen Fehler.


Und dann an der Stelle auch noch einmal die klare Bitte: Bei Maven Logs nicht nur die "Summary" eines Fehlers posten! Bitte wirklich immer das ganze Log der entsprechenden Ausführung posten! Und die Ausführung von Spotbugs beginnt dann mit einer Meldung wie:
Code:
[INFO] --- spotbugs-maven-plugin:4.7.2.0:spotbugs (default) @ mymavenapp ---

Und ab der Meldung kann dann prinzipiell alles interessant sein!
 

Hein_nieH

Bekanntes Mitglied
Problem gelöst.

Hallo,

ich konnte das Problem lösen. 😊
jenkins erzeugt jetzt endlich eine spotbugsXml.xml Datei.
Scheinbar lag der Fehler an der Versionsnummer von Spotbugs und an den goals.

Mit folgender Plugin-Einstellung funktioniert es jetzt:👍

XML:
            <!-- spotbugs -->
            <plugin>
                  <groupId>com.github.spotbugs</groupId>
                  <artifactId>spotbugs-maven-plugin</artifactId>
                  <version>4.7.2.1</version>
                  <dependencies>
                    <!-- overwrite dependency on spotbugs if you want to specify the version of spotbugs -->
                    <dependency>
                          <groupId>com.github.spotbugs</groupId>
                          <artifactId>spotbugs</artifactId>
                          <version>4.7.3</version>
                    </dependency>
                  </dependencies>
               </plugin>

Beim Build müssen in jenkins folgende Goals aufgerufen werden: clean compile install spotbugs:spotbugs
Der Hauptfehler für mein Problem lag vermutlich bei nicht richtig eingestellten goals.

Nun kann ich endlich damit beginnen zu ergründen, was die Fehler bedeuten.

Gruss Hein_nieH
 

khmarbaise

Mitglied
Problem gelöst.

Hallo,

ich konnte das Problem lösen. 😊
jenkins erzeugt jetzt endlich eine spotbugsXml.xml Datei.
Scheinbar lag der Fehler an der Versionsnummer von Spotbugs und an den goals.

Mit folgender Plugin-Einstellung funktioniert es jetzt:👍

XML:
            <!-- spotbugs -->
            <plugin>
                  <groupId>com.github.spotbugs</groupId>
                  <artifactId>spotbugs-maven-plugin</artifactId>
                  <version>4.7.2.1</version>
                  <dependencies>
                    <!-- overwrite dependency on spotbugs if you want to specify the version of spotbugs -->
                    <dependency>
                          <groupId>com.github.spotbugs</groupId>
                          <artifactId>spotbugs</artifactId>
                          <version>4.7.3</version>
                    </dependency>
                  </dependencies>
               </plugin>

Beim Build müssen in jenkins folgende Goals aufgerufen werden: clean compile install spotbugs:spotbugs
Der Hauptfehler für mein Problem lag vermutlich bei nicht richtig eingestellten goals.

Nun kann ich endlich damit beginnen zu ergründen, was die Fehler bedeuten.

Gruss Hein_nieH
Das clean compile install spotbugs:spotbugs. ist einige zu viel... ein schlichtes: clean verify spotbug:spotbugs sollte reichen... compile ist in install enthalten...
 

Hein_nieH

Bekanntes Mitglied
Hallo Khmarbaise,

danke für den Hinweis.
Mit den Goals: clean verify spotbug:spotbugs funktioniert es bei mir auch.

PS: Weiss jemand, ob es für SpotBugs auch eine deutsche Beschreibung gibt?

Gruss Hein_nieH
 

KonradN

Super-Moderator
Mitarbeiter
Und nur zum Verständnis noch der Hinweis zu dem
XML:
<executions>
    <execution>
        <id>spotbugs</id>
        <phase>verify</phase>
        <goals>
            <goal>spotbugs</goal>
        </goals>
    </execution>
</executions>
das man dazu nehmen kann. Dann würde das spotbugs:spotbugs automatisch in der verify Phase ausgeführt, so dass ein clean verify ausreichen würde. Das ist ja ein Element, das heraus genommen wurde um das als eigenständiges Ziel mit anzugeben.

Klar, kann man so machen, aber ich halte es für eher unüblich. Ich habe PMD und Spotbugs bei mir generell als festen Bestandteil eingebaut, denn das macht ja auch Sinn direkt beim Entwickler.

Aber das ist erst einmal eine Kleinigkeit - Es freut mich, dass es (endlich) funktioniert.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T build job läuft nicht mit findBugs...WARUM? Tools - Maven, Gradle, Ant & mehr 1
M Github erlaubt keine Commits von mir selbst Tools - Maven, Gradle, Ant & mehr 4
N Maven Intellij Maven Projekt erstell keine src Tools - Maven, Gradle, Ant & mehr 4
H Jenkins keine Tests gefunden - aber in Maven Tools - Maven, Gradle, Ant & mehr 30
H Maven - keine Durchführung von Tests Tools - Maven, Gradle, Ant & mehr 12
ruutaiokwu GIT/SourceTree Client: Es wurden keine Änderungen an dieser Datei erkannt, oder es handelt sich um eine Binärdatei (?) Tools - Maven, Gradle, Ant & mehr 5
H Maven M2E - keine Syntaxprüfung, Fehler, etc... Tools - Maven, Gradle, Ant & mehr 2
J Maven Nexus-Hosting - Keine Remote-Suche im Repo? Tools - Maven, Gradle, Ant & mehr 2
E Ant Concat schreibt keine neue Zeile in CSV-Datei Tools - Maven, Gradle, Ant & mehr 4
W CVS Keine Verbindung zu cvs.dev.java.net möglich Tools - Maven, Gradle, Ant & mehr 5
newcron Applet Keine warnung beim starten von Applets, die auf die HD zugreifen? Tools - Maven, Gradle, Ant & mehr 2
N Acces denied. Keine Idee mehr. Tools - Maven, Gradle, Ant & mehr 7
G Keine Berechnung im Applet Tools - Maven, Gradle, Ant & mehr 5
I Keine Verbindung nach draußen mit Applet Tools - Maven, Gradle, Ant & mehr 3
N Keine inneren Klassen in Applets? Tools - Maven, Gradle, Ant & mehr 7
S keine anzeige Tools - Maven, Gradle, Ant & mehr 4
S Keine Anzeige - Layoutmanager? Tools - Maven, Gradle, Ant & mehr 2
H Eclipse JUnit erzeugt Fehler im Maven-Test Tools - Maven, Gradle, Ant & mehr 1
B applet erstellen, welches eine grafikdatei erzeugt Tools - Maven, Gradle, Ant & mehr 2

Ähnliche Java Themen

Neue Themen


Oben