diff --git a/pmd/file b/pmd/file new file mode 100644 index 0000000000..dd17d7949b --- /dev/null +++ b/pmd/file @@ -0,0 +1,413 @@ + + + + David Dixon-Peugh + IDE Integrations + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDESVN ModuleMaintainers
BlueJpmd-bluejTom Copeland
CodeGuideN/AAustin Moore
Eclipsepmd-eclipsePhilippe Herlin
Emacspmd-emacsNascif Abousalh Neto
Gelpmd-gelAndrei Lumianski
IntelliJ IDEAN/AAmit Dev, Tom Copeland
IntelliJ IDEA - QAPlugN/AJakub Sławiński
JBuilderpmd-jbuilderTom Copeland
JCreatorN/ABrant Gurganus
JDeveloperpmd-jdeveloperTom Copeland
JEditpmd-jeditJiger Patel
MavenN/AVincent Massol
Maven 2N/AVincent Massol
NetBeans/Sun Java Studio Enterprise/Creatorpmd-netbeansRadim Kubacki
TextPadN/AJeff Epstein
WebLogic Workshop 8.1.xN/AKevin Conaway
+
+ +

A general note - most plugins include the PMD jar file, which has the rulesets + inside it. So even though the rulesets parameter that some plugins + use (i.e., "rulesets/unusedcode.xml") looks like a filesystem reference, it's really + being used by a getResourceAsStream() call to load it out of the PMD jar file.

+
+ + + +

+ BlueJ is a teaching IDE. To install the PMD extension for BlueJ, download + the PMDExtension jar file + and place it in your bluej/lib/extensions/ directory. +

+ + + + +

Here's how to set up PMD with Omnicore's CodeGuide (taken from here): +

+ +

Now you can right click on a source directory, select the PMD tool and a dialog box will appear. + Type in the name of a rule set (e.g. unusedcode). PMD is then executed on the directory you + selected with the rule set you specified. Since CodeGuide understands the emacs syntax you can + click on the file name and CodeGuide will jump to that file and line number.

+ +

Note: I set this up on Mac OS X. It should work on other unix variations just the same. + Of course you need to change the "Executable" setting above to where your PMD is installed. + On Windows you need to use the pmd.bat file instead of pmd.sh.

+ +

If you haven't heard of CodeGuide before, check it out. + It's a great IDE.

+ + + + +

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 procedures +except 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 selecting +Help->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.

+
+ + + +
+

+ Integration with GNU Emacs is performed through an ELisp package, pmd.el. + It supports two commands, "pmd-current-buffer" and "pmd-current-dir". + The output is captured in a compilation buffer which allows the user to "jump" + directly to the source code position associated with the PMD warnings. +

+
+ + +
+

Here's how to set up the Gel plugin:

+
    +
  • Download the pmd-gel-[version].zip file
  • +
  • Close Gel
  • +
  • Remove any old plugin versions from your gel\plugins directory
  • +
  • Unzip the new zip file into your gel\plugins directory
  • +
  • Start Gel
  • +
  • Go to Tools->Options->Plugin
  • +
  • Select the PMD plugin and click "Remove"
  • +
  • Click "Add" and select "net.sourceforge.pmd.gel.PMDPlugin"
  • +
  • Restart Gel
  • +
+

That's pretty much it. Now you can open a Java project and click on Plugins->PMD and + a configuration panel will pop up. You can pick which ruleset you want to run and + you can also pick whether you want to run PMD on the current file or on every + source file in your project.

+
+ + +
+

You can use an integrated plugin or just use it as an IDEA "External Tool".

+

Amit Dev wrote an integrated plugin for IDEA; you can download that from the IntelliJ plugins site.

+

Here's how to set it up as an "External Tool":

+ +

That's pretty much it. Now you can right click on a source directory and select PMD, it'll run recursively on the source files, and the results should + be displayed in a window and hyperlinked into the correct file and line of code. I usually + right-click on the message window title bar and unselect "autohide" so the window doesn't go + away every time I fix something in the code window.

+ + + +

QAPlug is an Intellij IDEA plugin to manage code quality. It integrates no less than Checkstyle, FindBugs, and PMD.

+

The plugin is available at http://www.qaplug.com

+

Also available at the JetBrains site, QAPlug-PMD + and QAPlug.

+ + + +

+To enable this OpenTool in JBuilder:

+
+ What you can do: + +

When running PMD, the results will be displayed in the MessageView under a tab called PMD Results. If you click on a +violation message within this view, you will be taken to the line in the source code where the violation was detected. +

+

Things still to do: +

+

+ + + + + +

+

    +
  1. Open Configure > Options
  2. +
  3. Go to the Tools panel
  4. +
  5. Click New > Program
  6. +
  7. Browse for PMD's pmd.bat
  8. +
  9. Put quotations around the path if it has spaces.
  10. +
  11. Set the initial directory to PMD's \bin directory
  12. +
  13. Check capture output
  14. +
  15. Put '"$[PrjDir]" emacs' followed by desired rulesets in the arguments
  16. +
+

To run PMD on a project, just pick pmd from the Tools menu.

+

+
+ + +
+

To install the extension for JDeveloper 10.1.2, download the binary release and unzip it + into your jdev/lib/ext directory. Then restart JDeveloper. To use it, open the +Tools-&Preferences menu, click on the PMD option, and select +a couple of rules to try. To run it, right click on either +a Java source file or a .jpr file (i.e., a project file) and +select PMD. Any rule violations should show up in a +LogWindow at the bottom of the screen. +

+

To install the extension for JDeveloper 10.1.3, use JDeveloper's built in "update center" + functionality. Fire up JDeveloper, click "Help", click "Check for Updates", + then click "Add" to add a new update center and enter: +

    +
  • Name: PMD Update Center
  • +
  • Location: http://pmd.sf.net/center.xml
  • +
+

+

Click your way through the ensuing dialogs and you'll install the plugin. Note + that I've set up the plugin for the latest JDeveloper 10.1.3 EA, so if you're using an earlier + preview release of 10.1.3 it might not work.

+
+ + +
+

The way I use the JEdit plugin is:

+
    +
  • Dock the ErrorList by going to Utilities->Global Options->Docking and putting ErrorList at the bottom of the screen
  • +
  • Open the File Browser if it isn't already open
  • +
  • Double-click on a source directory
  • +
  • Select Plugins->PMD->Check directory recursively
  • +
+

Note that you can select individual rules by going to Utilities->Global Options->Plugin Options->PMD. Also, +you can change the plugin to prompt you for a directory to check by going to that same menu and +selecting the "Ask for Directory" checkbox.

+
+ + +
+

Please see the Maven plugins web site for more information.

+ + + +

Please see the Maven 2 plugin + web site for more information. Also, the bug tracker for this plugin is here.

+ + + + +

Here's how to set up the Netbeans plugin:

+
+ + + + +
Assumptions
+

    +
  • The Java Development Kit, version 1.4.2 (versions 1.4 and higher are acceptable) is properly installed into your machine, and exists in D:\java\jdk_142\. This means that D:\java\jdk_142\bin\java.exe exists.
  • +
  • PMD version 5.0 exists in D:\java\pmd-5.0\. This means that D:\java\pmd-5.0\lib\pmd-5.0.jar (among other jar files in the same directory) exist.
  • +

+
To integrate into TextPad
+

    +
  1. In the Configure menu, choose Preferences.... This opens the Preferences dialog
  2. +
  3. In the left pane of the Preferences dialog, choose the Tools branch by clicking on the word "Tools".
  4. +
  5. On the far right of the dialog, click on the Add button, and then select Program... from the drop-down. This opens the standard Windows Open File dialog.
  6. +
  7. Type D:\java\jdk_142\bin\java.exe and click the Open button. In the center pane of the Preferences dialog, an item "Java" has now been added, and is currently selected.
  8. +
  9. Click the word Java, which makes the word editable. Select the entire word, and type "PMD directory". Press Return
  10. +
  11. Repeat steps three through five, but type "PMD file", instead of "PMD directory".
  12. +
  13. Click Apply.
  14. +
  15. Expand the Tools branch (if not already) by clicking on the '+' directly to its left.
  16. +
  17. In the expanded list, select PMD directory. This changes the right side of this dialog to the "tool" form.
  18. +
  19. In the "tool" form, enter these parameters:
      +
    • Parameters: -classpath D:\java\pmd-5.0\lib\pmd-5.0.jar;D:\java\pmd-5.0\lib\asm-3.2.jar;D:\java\pmd-5.0\lib\jaxen-1.1.1.jar net.sourceforge.pmd.PMD $FileDir net.sourceforge.pmd.renderers.TextPadRenderer E:\directory\my_pmd_ruleset.xml -debug +
      (Eliminate the spaces following 'jaxen-1.1.1.jar;' and 'asm-3.2.jar;'. They are there to prevent the text from exceeding the right side of your screen)
    • +
    • Initial Folder: $FileDir
    • +
    • Save all documents first: Checked
    • +
    • Capture output: Checked
    • +
    • All other checkboxes: Unchecked
    • +
    • Regular expression to match output: ^\([^(]+\)(\([0-9]+\),
    • +
    • Registers/File: 1
    • +
    • Registers/Line: 2
    • +
  20. +
  21. In the expanded list, select PMD file.
  22. +
  23. In the "tool" form, enter the same parameters as above, except replace '$FileDir' with '$File', in the Parameters textbox.
  24. +
  25. To save your work (truly, given a quirk of TextPad), click on OK, which closes the Preferences dialog. Restart TextPad and re-open the Preferences dialog.
  26. +
  27. Go back to both the "PMD directory" and "PMD file" Tools branches, and replace 'E:\directory\my_pmd_ruleset.xml' with the ruleset of your choice. For example, basic.
  28. +
  29. Go to the Keyboard branch in the left pane (above Tools), which changes the right side to the "keyboard configuration" form.
  30. +
  31. In the Categories list box, select Tools.
  32. +
  33. In the Command list box, select PMD directory.
  34. +
  35. Put your cursor into the Press new shortcut key, and type your desired key command. For example Ctrl+Page Up
  36. +
  37. Click Assign.
  38. +
  39. In the Command list box, select PMD file.
  40. +
  41. Put your cursor into the Press new shortcut key, and type your desired key command. For example Ctrl+Page Down
  42. +
  43. Click Assign.
  44. +
  45. Save your work again: Click on OK, which closes the Preferences dialog, and then restart TextPad.
  46. +

+
To run PMD against a single Java file
+

    +
  1. In TextPad, open any Java file.
  2. +
  3. Click Ctrl+Page Down. This opens an empty, read-only text document (titled "Command Results"). When PMD completes its analysis, this document will be populated with a listing of violated rules (or "Command completed successfully" indicating no violations).
  4. +
  5. Double click any line to go to it.
  6. +

+
To run PMD against a directory of Java files
+

    +
  1. In TextPad, open any file in the root directory you wish to analyze. Unfortunately, you'll need to create a dummy file, if no file exists there.
  2. +
  3. Click Ctrl+Page Up. This opens an empty, read-only text document (titled "Command Results"). When PMD completes its analysis, this document will be populated with a listing of violated rules (or "Command completed successfully" indicating no violations).
  4. +
  5. Double click any line to go to it.
  6. +

+

Because directory analysis may take a while, you may choose to cancel this operation. Do so by closing the (blank Command Results) document, and then confirming that, "yes, I do really want to exit the tool".

+
+ + +
+

Please see the WebLogic Workshop plugin project home page for more information.

+ + +
+ + + +
diff --git a/pmd/xdocs/integrations.xml b/pmd/xdocs/integrations.xml index 40fca1a1b8..9c77564b86 100644 --- a/pmd/xdocs/integrations.xml +++ b/pmd/xdocs/integrations.xml @@ -44,6 +44,11 @@ Amit Dev, Tom Copeland + IntelliJ IDEA - QAPlug + N/A + Jakub Sławiński + + JBuilder pmd-jbuilder Tom Copeland @@ -226,6 +231,12 @@ try deleting the ruleset.xml file in the .metadata/plugins/net.sourceforge.pmd.e away every time I fix something in the code window.

+ +

QAPlug is an Intellij IDEA plugin to manage code quality. It integrates no less than Checkstyle, FindBugs, and PMD.

+

The plugin is available at http://www.qaplug.com

+

Also available at the JetBrains site, QAPlug-PMD + and QAPlug.

+