C:\tmp\pmd-5.0.0\pmd\bin>pmd c:\data\pmd\pmd\test-data\Unused1.java xml rulesets/java/unusedcode.xml
public class Unused1 {
public static void main(String[] args) {
String fr;
int zahl1=2;
int zahl2=3;
System.out.println(zahl1+zahl2);
}
}
Ausgabe:
<?xml version="1.0"?><pmd>
<file name="c:\data\pmd\pmd\test-data\Unused1.java">
<violation line="5" rule="UnusedLocalVariable">
Avoid unused local variables such as 'fr'
</violation>
</file></pmd>
public class BasicJDBC {
public static void main(String[] args) throws IOException {
Statement stmt = null;
ResultSet rs = null;
java.sql.ResultSetMetaData md;
java.sql.Connection con = null;
String login;
String pw;
String statement;
Integer s = 0;
String url;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String db = "jdbc:oracle:thin:@";
try {
Class.forName("oracle.jdbc.OracleDriver");
System.out.println("Treiber eingebunden!");
} catch (Exception x) {
System.out.println(x.getMessage() + "|CAUSE: " + x.getCause() + "|"
+ "| Fehler beim Laden vom ODBC-Treiber!");
}
System.out.println("Oracle-Datenbank-URL: ");
url = br.readLine();
System.out.println("Login: ");
login = br.readLine();
System.out.println("Password: ");
pw = br.readLine();
try {
con = DriverManager.getConnection(db + url, login, pw);
con.setAutoCommit(false);
System.out.println("Verbindung hergestellt!");
} catch (Exception e) {
System.out.println(e.getMessage() + "|CAUSE: " + e.getCause() + "|"
+ "|Verbindung NICHT hergestellt!");
System.err.println("Fehler beim Verbindungsaufbau");
}
}
}
In diesem Beispiel wird eine Regel erstellt die eine Warnung ausgeben soll wenn eine While-Schleife ohne geschweifte Klammern genutzt wird. Folgende Elemente und Parameter sind dabei wichtig:<?xml version="1.0"?> <ruleset name="My 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 http://pmd.sourceforge.net/ruleset_2_0_0.xsd" xsi:noNamespaceSchemaLocation="http://pmd.sourceforge.net/ruleset_2_0_0.xsd"> <rule name="WhileLoopsMustUseBracesRule" message="Avoid using 'while' statements without curly braces" class="WhileLoopsMustUseBracesRule"> <description> Avoid using 'while' statements without using curly braces </description> <priority>3</priority> <example> <![CDATA[ public void doSomething() { while (true) x++; } ]]> </example> </rule> </ruleset>