PMD.
<p>PMD scans Java source code and looks for potential problems like:</p> <ul> <li>Possible bugs - empty try/catch/finally/switch statements</li> <li>Dead code - unused local variables, parameters and private methods</li> <li>Suboptimal code - wasteful String/StringBuffer usage</li> <li>Over....
Here is the list of declaration for pmd. If you use Maven you can use the following code to add the dependency for this POM file.
<dependency> <groupId>pmd</groupId> <artifactId>pmd</artifactId> <version>4.2.4</version> </dependency>
If you think this Maven repository POM file listing for pmd is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
The pmd-4.2.4 has 4 dependencies.The most popular ones are listed in the following table along with their categories and number of artifacts depending on them.
Category | Artifact | Depended By Count |
---|---|---|
XPath | jaxen 1.1.1 Jaxen is a universal Java XPath engine. | 115 |
JUnit | junit 4.4 JUnit is a regression testing framework written by Erich Gamma and Kent Beck. It is used by the developer who implements unit tests in Java. | 301 |
The following plugins are used in the pmd-4.2.4.jar
The following packages are defined in the pmd-4.2.4.jar
net.sourceforge.pmd net.sourceforge.pmd.ant net.sourceforge.pmd.ast net.sourceforge.pmd.cpd net.sourceforge.pmd.cpd.cppast net.sourceforge.pmd.dcd net.sourceforge.pmd.dcd.asm net.sourceforge.pmd.dcd.graph net.sourceforge.pmd.dfa net.sourceforge.pmd.dfa.pathfinder net.sourceforge.pmd.dfa.report net.sourceforge.pmd.dfa.variableaccess net.sourceforge.pmd.jaxen net.sourceforge.pmd.jsp.ast net.sourceforge.pmd.jsp.rules net.sourceforge.pmd.parsers net.sourceforge.pmd.properties net.sourceforge.pmd.quickfix net.sourceforge.pmd.renderers net.sourceforge.pmd.rules net.sourceforge.pmd.rules.basic net.sourceforge.pmd.rules.codesize net.sourceforge.pmd.rules.design net.sourceforge.pmd.rules.imports net.sourceforge.pmd.rules.junit net.sourceforge.pmd.rules.migration net.sourceforge.pmd.rules.naming net.sourceforge.pmd.rules.optimization net.sourceforge.pmd.rules.regex net.sourceforge.pmd.rules.strictexception net.sourceforge.pmd.rules.strings net.sourceforge.pmd.rules.sunsecure net.sourceforge.pmd.sourcetypehandlers net.sourceforge.pmd.stat net.sourceforge.pmd.symboltable net.sourceforge.pmd.typeresolution net.sourceforge.pmd.typeresolution.rules net.sourceforge.pmd.typeresolution.rules.imports net.sourceforge.pmd.typeresolution.visitors net.sourceforge.pmd.util net.sourceforge.pmd.util.designer net.sourceforge.pmd.util.filter net.sourceforge.pmd.util.viewer net.sourceforge.pmd.util.viewer.gui net.sourceforge.pmd.util.viewer.gui.menu net.sourceforge.pmd.util.viewer.model net.sourceforge.pmd.util.viewer.util
Here is the content of the POM file.
<?xml version="1.0" encoding="UTF-8"?> <project> <modelVersion>4.0.0</modelVersion> <groupId>pmd</groupId> <artifactId>pmd</artifactId> <name>PMD</name> <version>4.2.4</version> <description> <![CDATA[ <p>PMD scans Java source code and looks for potential problems like:</p> <ul> <li>Possible bugs - empty try/catch/finally/switch statements</li> <li>Dead code - unused local variables, parameters and private methods</li> <li>Suboptimal code - wasteful String/StringBuffer usage</li> <li>Overcomplicated expressions - unnecessary if statements, for loops that could be while loops</li> <li>Duplicate code - copied/pasted code means copied/pasted bugs</li> </ul> <p>You can <b><a href="http://sourceforge.net/project/showfiles.php?group_id=56262">download everything from here</a></b>, and you can get an overview of all the rules at the <a href="rules/index.html">rulesets index</a> page.</p> <p>PMD is <a href="integrations.html">integrated</a> with JDeveloper, Eclipse, JEdit, JBuilder, BlueJ, CodeGuide, NetBeans/Sun Java Studio Enterprise/Creator, IntelliJ IDEA, TextPad, Maven, Ant, Gel, JCreator, and Emacs.</p> ]]> </description> <url>http://pmd.sourceforge.net/</url> <issueManagement> <url>http://www.sourceforge.net/tracker/?group_id=56262</url> </issueManagement> <ciManagement> <notifiers> <notifier> <configuration> <address>tom@infoether.com</address> </configuration> </notifier> </notifiers> </ciManagement> <inceptionYear>2002</inceptionYear> <mailingLists> <mailingList> <name>PMD development</name> <subscribe>http://lists.sourceforge.net/lists/listinfo/pmd-devel</subscribe> <unsubscribe>http://lists.sourceforge.net/lists/listinfo/pmd-devel</unsubscribe> <archive>http://sourceforge.net/mailarchive/forum.php?forum=pmd-devel</archive> </mailingList> </mailingLists> <scm> <connection>scm:svn:https://pmd.svn.sourceforge.net/svnroot/pmd/trunk/pmd</connection> <developerConnection>scm:svn:https://pmd.svn.sourceforge.net/svnroot/pmd/trunk/pmd</developerConnection> <url>http://pmd.svn.sourceforge.net/viewvc/pmd/</url> </scm> <organization> <name>InfoEther</name> <url>http://pmd.sourceforge.net/</url> </organization> <build> <sourceDirectory>src</sourceDirectory> <testSourceDirectory>regress</testSourceDirectory> <resources> <resource> <directory>${basedir}</directory> <includes> <include>rulesets/**/*.xml</include> <include>rulesets/*.properties</include> <include>etc/pmd-nicerhtml.xsl</include> </includes> </resource> <resource> <directory>${basedir}/src</directory> <includes> <include>**/*.properties</include> </includes> </resource> </resources> <testResources> <testResource> <directory>${basedir}/regress/</directory> <includes> <include>**/*.xml</include> </includes> </testResource> </testResources> <plugins> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <forkMode>once</forkMode> <skip>true</skip> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <encoding>utf8</encoding> <source>1.5</source> <target>1.5</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>ant</groupId> <artifactId>ant</artifactId> <version>1.6</version> </dependency> <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>asm</groupId> <artifactId>asm</artifactId> <version>3.1</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.4</version> </dependency> </dependencies> <distributionManagement> <repository> <id>pmd-repo</id> <name>Default Repository</name> <url>scp://web.sourceforge.net/home/groups/p/pm/pmd/htdocs/maven2</url> </repository> <site> <id>pmd-site</id> <name>Default Site</name> <url>scp://web.sourceforge.net/home/groups/p/pm/pmd/htdocs</url> </site> </distributionManagement> <reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jxr-plugin</artifactId> </plugin> <!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> </plugin> --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> <configuration> <linkXref>true</linkXref> <sourceEncoding>utf-8</sourceEncoding> <minimumTokens>100</minimumTokens> <targetJdk>1.5</targetJdk> <rulesets> <ruleset>http://pmd.svn.sourceforge.net/svnroot/pmd/trunk/pmd/rulesets/internal/dogfood.xml</ruleset> </rulesets> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <configuration> <configLocation>etc/checkstyle-config.xml</configLocation> </configuration> </plugin> </plugins> </reporting> </project>