Pmd / pmd-apex / src / main / resources / rulesets / apex / ruleset.xml Find file Copy path adangel apex Replace deprecated rule VariableNamingConventions in quickstar 07c90ee May 25, 2019. Customize PMD in Eclipse with your own rules. Have to define the rule using it, let's open new XML file, name it jpa-ruleset.xml, and put into it:.
Eclipse
To install the PMD plugin for Eclipse:
- Start Eclipse and open a project
- Select 'Help'->'Software Updates'->'Find and Install'
- Click 'Next', then click 'New remote site'
- Enter 'PMD' into the Name field and 'http://pmd.sf.net/eclipse' into the URL field
- Click through the rest of the dialog boxes to install the plugin
Alternatively, you can download the latest zip file and follow the above proceduresexcept for using 'New local site' and browsing to the downloaded zip file.
To configure PMD, select 'Windows'->'Preferences', then select PMD.
To run PMD, right-click on a project node and select 'PMD'->'Check code with PMD'.
To run the duplicate code detector, right-click on a project node and select 'PMD'->'Find suspect cut and paste'. The report will be placed in a 'reports' directory in a file called 'cpd-report.txt'.
To find additional help for other features, please read included help by selectingHelp->Help Contents and browse the 'How to...' section in the 'PMD Plugin Documentation' book.
After installing an update, if you get an Exception such as 'java.lang.RuntimeException: Couldn't find that class xxxxx',try deleting the ruleset.xml file in the .metadata/plugins/net.sourceforge.pmd.eclipse directory in your workspace.
To get Eclipse to not flag the @SuppressWarnings('PMD') annotation, look under the menu headings Java -> Compiler -> Errors/Warnings -> Annotations -> Unhandled Warning Token.
How to write an own PMD rule?
- Create a new class (called rule in the following) that extends the PMD class
AbstractJavaRule
(see PMD documentation: How to write a rule class?).- Override the
visit
methods which represent the Java syntax elements you want to analyze. - Use the
addViolation()
methods within thevisit
methods to indicate a violation of your rule. - Use the
definePropertyDescriptor()
method in the constructor to define a configuration parameter for your rule. Use thegetProperty()
method to read a configuration parameter within thevisit
method.
- Override the
- Add your rule to a custom ruleset xml file (see PMD documentation: How to write a PMD rule?). Let us assume it is stored in
a/b/c/my-ruleset.xml
.
Example ruleset file: - Package your compiled rule and the ruleset file (into an archive file, e.g., zip or jar).
- Now, you can include your ruleset archive into an arbitrary project ruleset file by inserting the following line:
How to let the PMD Eclipse plugin recognize your own rule?
Shortest answer: avoid using the PMD Eclipse plugin. Instead, use the Lightweight Eclipse Plugin for Quality Assurance Tools.
Short answer: if you really need to use the PMD Eclipse plugin, then build an Eclipse fragment plugin for the PMD Eclipse plugin (see this link).
The most important paragraphs of the link are:
- Creating the plugin fragment in Eclipse
- Packaging and distributing the new rule
- Installing the new rule
How to check your own PMD rule via Maven
- Add the
maven-pmd-plugin
as plugin to yourpom.xml
. - Add (your own) custom ruleset archives as a
<dependency>
of the plugin. - Add your project-specific ruleset in
<configuration><rulesets>...
. - Define what goals should be executed in which phases in
<executions>...
.
Example excerpt of a
pom.xml
: