Eclipse PMD Rules werden nicht angezeigt/überprüft

Robertop

Bekanntes Mitglied
Hallo zusammen,

ich versuche gerade, unser bisheriges PMD-Ruleset in unsere neue Eclipse Entwicklungsumgebung zu laden, bekomme aber leider keine Warnungen mehr in der IDE angezeigt. Weil ich nicht sicher bin, was den Fehler verursacht, habe ich nochmal alles von Vorne probiert und habe jetzt das Problem auch in einem ganz frischen Workspace mit einer ganz frischen Eclipse RCP Installation (2024-06) und einem frisch erstellen Beispiel-Ruleset.

Eigentlich sollte bei meinem Test die Zeile "short bill" von PMD markiert werden. Das passiert aber nicht. Im Projekt habe ich PMD aktiviert und mein Ruleset hinzugefügt. Der Name "Custom Rules" mit der Regel "DontCallBossShort" wurde hier korrekt geladen und im Eclipse "ErrorLog" ist ein Informations-Eintrag, dass das Ruleset geladen wurde:
1729241305092.png

Übersehe ich noch etwas, was ich aktivieren muss, damit ich Fehler angezeigt bekomme?

Hier das Ruleset:
XML:
<?xml version="1.0" encoding="UTF-8"?>
<ruleset name="Custom Rules"
    xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">

    <description>
        My custom rules
    </description>
    
 <rule name="DontCallBossShort"
      language="java"
      message="Boss wants to talk to you."
      class="net.sourceforge.pmd.lang.rule.xpath.XPathRule">
    <description>
        TODO
    </description>
    <priority>3</priority>
    <properties>
        <property name="xpath">
            <value>
<![CDATA[
//VariableId[@Name = "bill"][../../Type[@TypeImage="short"]]
]]>
            </value>
        </property>
    </properties>
</rule>
</ruleset>

Installierte Software
1729241082310.png

Meine Javaklasse mit Regelverletzung

Java:
package my.project.with.pmd;

public class MyClass {
    
    public static void main(String... args) {
        short bill = 1;
        System.out.println(bill);
    }

}
 

Zurück
Oben