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>net.sourceforge.pmd</groupId> <artifactId>pmd</artifactId> <version>5.0.3</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.
Name:BSD-style
URL: http://pmd.sourceforge.net/license.html.
The pmd-5.0.3 has 13 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 |
---|---|---|
Build | ant 1.8.1 Apache Ant | 83 |
XPath | jaxen 1.1.1 Jaxen is a universal Java XPath engine. | 115 |
Console | jcommander 1.27 A Java framework to parse command line options with annotations. | 21 |
XPath | saxon 9.1.0.8 Saxon a complete and conformant implementation of the XSLT 2.0, XQuery 1.0, and XPath 2.0 Recommendations published on 23 January 2007 by W3C | 94 |
XPath | saxon 9.1.0.8 Saxon a complete and conformant implementation of the XSLT 2.0, XQuery 1.0, and XPath 2.0 Recommendations published on 23 January 2007 by W3C | 94 |
Scripting | rhino 1.7R3 Rhino is an open-source implementation of JavaScript written entirely in Java. It is typically embedded into Java applications to provide scripting to end users. | 34 |
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 |
Parser | xercesImpl 2.9.1 Xerces2 is the next generation of high performance, fully compliant XML parsers in the Apache Xerces family. This new version of Xerces introduces the Xerces Native Interface (XNI), a complete framework for building parser components and configurations that is extremely modular and easy... | 97 |
Development | javacc 4.1 JavaCC is a parser/scanner generator for Java. | 6 |
File | commons-io 2.2 The Commons IO library contains utility classes, stream implementations, file filters, file comparators, endian transformation classes, and much more. | 60 |
Testing Mock | mockito-all 1.9.5 Mock objects library for java | 1072 |
The following plugins are used in the pmd-5.0.3.jar
The following packages are defined in the pmd-5.0.3.jar
net.sourceforge.pmd net.sourceforge.pmd.ant net.sourceforge.pmd.benchmark net.sourceforge.pmd.cli net.sourceforge.pmd.cpd net.sourceforge.pmd.dcd net.sourceforge.pmd.dcd.asm net.sourceforge.pmd.dcd.graph net.sourceforge.pmd.lang net.sourceforge.pmd.lang.ast net.sourceforge.pmd.lang.ast.xpath net.sourceforge.pmd.lang.ast.xpath.saxon net.sourceforge.pmd.lang.cpp net.sourceforge.pmd.lang.cpp.ast net.sourceforge.pmd.lang.dfa net.sourceforge.pmd.lang.dfa.pathfinder net.sourceforge.pmd.lang.dfa.report net.sourceforge.pmd.lang.ecmascript net.sourceforge.pmd.lang.ecmascript.ast net.sourceforge.pmd.lang.ecmascript.rule net.sourceforge.pmd.lang.ecmascript.rule.basic net.sourceforge.pmd.lang.java net.sourceforge.pmd.lang.java.ast net.sourceforge.pmd.lang.java.dfa net.sourceforge.pmd.lang.java.javadoc net.sourceforge.pmd.lang.java.rule net.sourceforge.pmd.lang.java.rule.basic net.sourceforge.pmd.lang.java.rule.codesize net.sourceforge.pmd.lang.java.rule.comments net.sourceforge.pmd.lang.java.rule.controversial net.sourceforge.pmd.lang.java.rule.coupling net.sourceforge.pmd.lang.java.rule.design net.sourceforge.pmd.lang.java.rule.finalizers net.sourceforge.pmd.lang.java.rule.imports net.sourceforge.pmd.lang.java.rule.javabeans net.sourceforge.pmd.lang.java.rule.junit net.sourceforge.pmd.lang.java.rule.logging net.sourceforge.pmd.lang.java.rule.migrating net.sourceforge.pmd.lang.java.rule.naming net.sourceforge.pmd.lang.java.rule.optimizations net.sourceforge.pmd.lang.java.rule.regex net.sourceforge.pmd.lang.java.rule.strictexception net.sourceforge.pmd.lang.java.rule.strings net.sourceforge.pmd.lang.java.rule.sunsecure net.sourceforge.pmd.lang.java.rule.unnecessary net.sourceforge.pmd.lang.java.rule.unusedcode net.sourceforge.pmd.lang.java.symboltable net.sourceforge.pmd.lang.java.typeresolution net.sourceforge.pmd.lang.java.typeresolution.rules net.sourceforge.pmd.lang.java.typeresolution.rules.imports net.sourceforge.pmd.lang.java.typeresolution.visitors net.sourceforge.pmd.lang.java.xpath net.sourceforge.pmd.lang.jsp net.sourceforge.pmd.lang.jsp.ast net.sourceforge.pmd.lang.jsp.rule net.sourceforge.pmd.lang.jsp.rule.basic net.sourceforge.pmd.lang.rule net.sourceforge.pmd.lang.rule.properties net.sourceforge.pmd.lang.rule.properties.factories net.sourceforge.pmd.lang.rule.stat net.sourceforge.pmd.lang.rule.xpath net.sourceforge.pmd.lang.xml net.sourceforge.pmd.lang.xml.ast net.sourceforge.pmd.lang.xml.rule net.sourceforge.pmd.lang.xpath net.sourceforge.pmd.processor net.sourceforge.pmd.renderers net.sourceforge.pmd.stat net.sourceforge.pmd.util net.sourceforge.pmd.util.datasource net.sourceforge.pmd.util.designer net.sourceforge.pmd.util.filter net.sourceforge.pmd.util.log 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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.pmd</groupId> <artifactId>pmd</artifactId> <name>PMD</name> <version>5.0.3</version> <parent> <groupId>org.sonatype.oss</groupId> <artifactId>oss-parent</artifactId> <version>7</version> </parent> <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://sourceforge.net/p/pmd/bugs/</url> </issueManagement> <ciManagement> <notifiers> <notifier> <configuration> <address>tom@infoether.com</address> </configuration> </notifier> </notifiers> </ciManagement> <inceptionYear>2002</inceptionYear> <licenses> <license> <name>BSD-style</name> <url>http://pmd.sourceforge.net/license.html</url> <distribution>repo</distribution> </license> </licenses> <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:git:git://github.com/pmd/pmd.git</connection> <developerConnection>scm:git:ssh://git@github.com/pmd/pmd.git</developerConnection> <url>https://github.com/pmd/pmd</url> <tag>pmd_releases/5.0.3</tag> </scm> <organization> <name>InfoEther</name> <url>http://pmd.sourceforge.net/</url> </organization> <properties> <javacc.version>4.1</javacc.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- This value actually differs to maven default expectation(src/site/xdoc/) as we need to pre process those and we place them instead in target/generated-xdocs/. If the xdocs files stay in src/site/xdoc/, mvn tries to copy over the generated one, and complains... --> <src.xdocs.dir>src/site/xdocs</src.xdocs.dir> <pmd.website.baseurl>http://pmd.sourceforge.net/pmd-${project.version}</pmd.website.baseurl> </properties> <build> <testResources> <testResource> <directory>${basedir}/src/test/resources</directory> </testResource> <testResource> <directory>${basedir}/src/test/java</directory> <includes> <include>**/testdata/*.java</include> </includes> </testResource> </testResources> <resources> <resource> <directory>${basedir}/src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <extensions> <extension> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-ssh</artifactId> <version>2.2</version> </extension> </extensions> <plugins> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>2.5</version> <configuration> <useDefaultDelimiters>false</useDefaultDelimiters> <delimiters> <delimiter>${*}</delimiter> </delimiters> </configuration> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.12</version> <configuration> <forkMode>once</forkMode> <argLine>-Xmx512m -Dfile.encoding=${project.build.sourceEncoding}</argLine> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.7</version> <executions> <execution> <id>add-javacc-generated-sources</id> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>${project.build.directory}/generated-sources/javacc</source> </sources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.7</version> <inherited>true</inherited> <executions> <execution> <id>generate-sources</id> <phase>generate-sources</phase> <configuration> <target> <ant antfile="src/main/ant/alljavacc.xml"> <property name="target" value="${project.build.directory}/generated-sources/javacc" /> <property name="javacc.jar" value="${settings.localRepository}/net/java/dev/javacc/javacc/${javacc.version}/javacc-${javacc.version}.jar" /> </ant> </target> </configuration> <goals> <goal>run</goal> </goals> </execution> <execution> <id>generate-ruleset-as-xdocs</id> <phase>pre-site</phase> <configuration> <target> <echo>PMD specific tasks: generating xdocs from rulesets</echo> <mkdir dir="${project.build.directory}/generated-xdocs/" /> <copy toDir="${project.build.directory}/generated-xdocs/" overwrite="true" verbose="true"> <fileset dir="${src.xdocs.dir}" /> <filterset> <filter token="VERSION" value="${project.version}" /> </filterset> </copy> </target> </configuration> <goals> <goal>run</goal> </goals> </execution> <execution> <id>move-index-and-delete-generated-xdocs</id> <phase>site</phase> <configuration> <target> <echo>PMD site specific tasks</echo> <echo>1. Copying missing images to site directory.</echo> <copy todir="${project.build.directory}/site/images/"> <fileset dir="${src.xdocs.dir}/images/" includes="**/*.*" /> </copy> <echo>2. Adding missing text files to site.</echo> <copy todir="${project.build.directory}/site/"> <fileset dir="${src.xdocs.dir}/" includes="**/*.txt" /> </copy> <echo>3. Deleting useless generated files.</echo> <delete quiet="true"> <fileset dir="${src.xdocs.dir}/rules" includes="**/*.xml" /> <fileset dir="${src.xdocs.dir}/" includes="mergedruleset.xml" /> <fileset dir="${project.build.directory}" includes="site/mergedruleset.html" /> </delete> </target> </configuration> <goals> <goal>run</goal> </goals> </execution> <execution> <id>pmd-clean</id> <phase>clean</phase> <configuration> <target> <echo>PMD specific tasks: cleaning generated xdocs</echo> <delete quiet="true"> <fileset dir="${src.xdocs.dir}/rules" includes="**/*.xml" /> <fileset dir="${src.xdocs.dir}/" includes="mergedruleset.xml" /> </delete> </target> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> <!-- As Clover can be quite an hassle, know that you can skip it by using the following option when running mvn: $ mvn clean -Dmaven.clover.skip=true site --> <plugin> <groupId>com.atlassian.maven.plugins</groupId> <artifactId>maven-clover2-plugin</artifactId> <version>2.5.1</version> <configuration> <jdk>1.6</jdk> <licenseLocation>licences/clover2.license</licenseLocation> </configuration> <executions> <execution> <phase>pre-site</phase> <goals> <goal>instrument</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>3.0</version> <configuration> <xdocDirectory>${project.build.directory}/generated-xdocs</xdocDirectory> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.2.1</version> <configuration> <appendAssemblyId>false</appendAssemblyId> <archiverConfig> <defaultDirectoryMode>493</defaultDirectoryMode> <!-- 0755 --> </archiverConfig> </configuration> <executions> <!-- needs to run after the site, as the site documentation will be included in the zip files --> <execution> <id>build-bin-dist</id> <phase>post-site</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>${project.artifactId}-bin-${project.version}</finalName> <descriptors> <descriptor>src/main/assembly/bin.xml</descriptor> </descriptors> </configuration> </execution> <execution> <id>build-src-dist</id> <phase>post-site</phase> <goals> <goal>single</goal> </goals> <configuration> <finalName>${project.artifactId}-src-${project.version}</finalName> <descriptors> <descriptor>src/main/assembly/src.xml</descriptor> </descriptors> </configuration> </execution> </executions> </plugin> <plugin> <groupId>net.sourceforge.pmd</groupId> <artifactId>pmd-build</artifactId> <version>0.8</version> <executions> <execution> <phase>pre-site</phase> <goals> <goal>pmd-pre-site</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> <version>2.3.2</version> <configuration> <releaseProfiles>pmd-release</releaseProfiles> <pushChanges>false</pushChanges> <localCheckout>true</localCheckout> </configuration> </plugin> </plugins> <pluginManagement> <plugins> <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. --> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <versionRange>[1.7,)</versionRange> <goals> <goal>run</goal> </goals> </pluginExecutionFilter> <action> <execute> <runOnIncremental>false</runOnIncremental> <runOnConfiguration>true</runOnConfiguration> </execute> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> </plugins> </pluginManagement> </build> <dependencies> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.8.1</version> </dependency> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant-testutil</artifactId> <version>1.7.1</version> </dependency> <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> <version>1.1.1</version> <exclusions> <exclusion> <artifactId>xercesImpl</artifactId> <groupId>xerces</groupId> </exclusion> <exclusion> <artifactId>xalan</artifactId> <groupId>xalan</groupId> </exclusion> <exclusion> <artifactId>icu4j</artifactId> <groupId>com.ibm.icu</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.beust</groupId> <artifactId>jcommander</artifactId> <version>1.27</version> </dependency> <dependency> <groupId>asm</groupId> <artifactId>asm</artifactId> <version>3.2</version> </dependency> <dependency> <groupId>net.sourceforge.saxon</groupId> <artifactId>saxon</artifactId> <version>9.1.0.8</version> </dependency> <dependency> <groupId>net.sourceforge.saxon</groupId> <artifactId>saxon</artifactId> <version>9.1.0.8</version> <classifier>dom</classifier> </dependency> <dependency> <groupId>org.mozilla</groupId> <artifactId>rhino</artifactId> <version>1.7R3</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.4</version> </dependency> <dependency> <groupId>xerces</groupId> <artifactId>xercesImpl</artifactId> <version>2.9.1</version> <type>jar</type> <scope>runtime</scope> </dependency> <dependency> <groupId>net.java.dev.javacc</groupId> <artifactId>javacc</artifactId> <version>${javacc.version}</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-all</artifactId> <version>1.9.5</version> <scope>test</scope> </dependency> </dependencies> <reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jxr-plugin</artifactId> <version>2.3</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>2.8.1</version> <reportSets> <reportSet> <reports> <report>javadoc</report> <report>test-javadoc</report> </reports> </reportSet> </reportSets> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> <version>2.7.1</version> <configuration> <linkXref>true</linkXref> <sourceEncoding>utf-8</sourceEncoding> <minimumTokens>100</minimumTokens> <targetJdk>1.6</targetJdk> <rulesets> <!-- once the pmd plugin is migrated to pmd-5, we should be able to use the current dogfood configuration --> <!-- <ruleset>src/main/resources/rulesets/internal/dogfood.xml</ruleset> --> <ruleset>https://pmd.svn.sourceforge.net/svnroot/pmd/branches/pmd/4.3.x/rulesets/internal/dogfood.xml</ruleset> </rulesets> </configuration> </plugin> <!-- Emma is a test coverage tools to be used instead of clover. As the mvn2 plugin is not released yet, the plugin is commented out, so you build won't fail: You can get an Emma plugin for Maven2 at http://jira.codehaus.org/browse/MOJO-762 Download the tarball, extract, cd into dir, run $ mvn install. --> <!-- <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>emma-maven-plugin</artifactId> </plugin> --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>2.9.1</version> <configuration> <configLocation>etc/checkstyle-config.xml</configLocation> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> <version>2.4</version> <reportSets> <reportSet> <reports> <report>summary</report> <report>dependencies</report> <report>project-team</report> <report>mailing-list</report> <report>cim</report> <report>issue-tracking</report> <report>license</report> <report>scm</report> </reports> </reportSet> </reportSets> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-report-plugin</artifactId> <version>2.12</version> </plugin> <plugin> <groupId>com.atlassian.maven.plugins</groupId> <artifactId>maven-clover2-plugin</artifactId> <version>2.5.1</version> <configuration> <licenseLocation>licences/clover2.license</licenseLocation> <reportDescriptor>etc/default-clover-report.xml</reportDescriptor> </configuration> </plugin> </plugins> </reporting> <profiles> <profile> <id>pmd-release</id> <properties> <pmd.website.baseurl>http://pmd.sourceforge.net/pmd-${project.version}</pmd.website.baseurl> </properties> </profile> <profile> <id>sf-release</id> <distributionManagement> <repository> <id>pmd-repo</id> <name>Default Repository</name> <url>scp://shell.sourceforge.net/home/project-web/pmd/htdocs/maven2</url> </repository> <site> <id>pmd-site</id> <name>Default Site</name> <url>scp://shell.sourceforge.net/home/project-web/pmd/htdocs/pmd-${project.version}</url> </site> </distributionManagement> <properties> <pmd.website.baseurl>http://pmd.sourceforge.net/pmd-${project.version}</pmd.website.baseurl> </properties> <build> <plugins> <plugin> <inherited>true</inherited> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <inherited>true</inherited> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <executions> <execution> <id>attach-javadocs</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> <plugin> <inherited>true</inherited> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <configuration> <updateReleaseInfo>true</updateReleaseInfo> </configuration> </plugin> </plugins> </build> </profile> <profile> <id>sf-snapshot</id> <distributionManagement> <snapshotRepository> <id>pmd-snapshot-repo</id> <name>Snapshot Repository</name> <url>scp://shell.sourceforge.net/home/project-web/pmd/htdocs/snapshot/maven2</url> <uniqueVersion>true</uniqueVersion> </snapshotRepository> <site> <id>pmd-snapshot-site</id> <name>Default Site</name> <url>scp://shell.sourceforge.net/home/project-web/pmd/htdocs/snapshot</url> </site> </distributionManagement> </profile> <profile> <id>reports</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId> <version>2.7.1</version> <executions> <execution> <phase>verify</phase> <goals> <goal>pmd</goal> </goals> </execution> </executions> <configuration> <sourceEncoding>utf-8</sourceEncoding> <minimumTokens>100</minimumTokens> <targetJdk>1.6</targetJdk> <rulesets> <!-- once the pmd plugin is migrated to pmd-5, we should be able to use the current dogfood configuration --> <!-- <ruleset>src/main/resources/rulesets/internal/dogfood.xml</ruleset> --> <ruleset>https://pmd.svn.sourceforge.net/svnroot/pmd/branches/pmd/4.3.x/rulesets/internal/dogfood.xml</ruleset> </rulesets> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <version>2.9.1</version> <executions> <execution> <phase>verify</phase> <goals> <goal>checkstyle</goal> </goals> </execution> </executions> <configuration> <configLocation>etc/checkstyle-config.xml</configLocation> </configuration> </plugin> </plugins> </build> </profile> </profiles> </project>