Author: oching Date: Fri Jun 30 02:37:11 2006 New Revision: 418216 URL: http://svn.apache.org/viewvc?rev=418216&view=rev Log: PR: PMD-34
Revised and updated plugin documentation. Added: maven/plugins/trunk/maven-pmd-plugin/src/site/apt/examples/ maven/plugins/trunk/maven-pmd-plugin/src/site/apt/examples/generatingPmdAndCpd.apt maven/plugins/trunk/maven-pmd-plugin/src/site/apt/examples/usingRuleSets.apt maven/plugins/trunk/maven-pmd-plugin/src/site/apt/examples/violationChecking.apt maven/plugins/trunk/maven-pmd-plugin/src/site/apt/faq.apt maven/plugins/trunk/maven-pmd-plugin/src/site/apt/overview.apt maven/plugins/trunk/maven-pmd-plugin/src/site/apt/usage.apt Removed: maven/plugins/trunk/maven-pmd-plugin/src/site/apt/howto.apt Modified: maven/plugins/trunk/maven-pmd-plugin/pom.xml maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdViolationCheckMojo.java maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReport.java maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReportGenerator.java maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdViolationCheckMojo.java maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/Locator.java maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReportListener.java maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdViolationCheckMojo.java maven/plugins/trunk/maven-pmd-plugin/src/site/site.xml Modified: maven/plugins/trunk/maven-pmd-plugin/pom.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/pom.xml?rev=418216&r1=418215&r2=418216&view=diff ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/pom.xml (original) +++ maven/plugins/trunk/maven-pmd-plugin/pom.xml Fri Jun 30 02:37:11 2006 @@ -16,6 +16,9 @@ fragments, as well as being able to fail the build based on these metrics. </description> + <prerequisites> + <maven>2.0</maven> + </prerequisites> <dependencies> <dependency> <groupId>org.apache.maven</groupId> @@ -48,4 +51,17 @@ <name>John Allen</name> </contributor> </contributors> + <reporting> + <plugins> + <plugin> + <artifactId>maven-javadoc-plugin</artifactId> + </plugin> + <plugin> + <artifactId>maven-jxr-plugin</artifactId> + </plugin> + <plugin> + <artifactId>maven-changelog-plugin</artifactId> + </plugin> + </plugins> + </reporting> </project> Modified: maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdViolationCheckMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdViolationCheckMojo.java?rev=418216&r1=418215&r2=418216&view=diff ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdViolationCheckMojo.java (original) +++ maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/AbstractPmdViolationCheckMojo.java Fri Jun 30 02:37:11 2006 @@ -1,5 +1,21 @@ package org.apache.maven.plugin.pmd; +/* + * Copyright 2001-2006 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; @@ -94,6 +110,15 @@ } } + /** + * Method for counting the number of violations found by the PMD tool + * + * @param xpp the xml parser object + * @param tagName the element that will be checked + * @return an int that specifies the number of violations found + * @throws XmlPullParserException + * @throws IOException + */ private int countViolations( XmlPullParser xpp, String tagName ) throws XmlPullParserException, IOException { Modified: maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReport.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReport.java?rev=418216&r1=418215&r2=418216&view=diff ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReport.java (original) +++ maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReport.java Fri Jun 30 02:37:11 2006 @@ -1,7 +1,7 @@ package org.apache.maven.plugin.pmd; /* - * Copyright 2005 The Apache Software Foundation. + * Copyright 2005-2006 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. Modified: maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReportGenerator.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReportGenerator.java?rev=418216&r1=418215&r2=418216&view=diff ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReportGenerator.java (original) +++ maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdReportGenerator.java Fri Jun 30 02:37:11 2006 @@ -9,6 +9,8 @@ import org.codehaus.plexus.util.StringUtils; /** + * Class that generated the CPD report. + * * @author mperham * @version $Id: $ */ @@ -30,11 +32,19 @@ this.xrefLocation = xrefLocation; } + /** + * Method that returns the title of the CPD Report + * + * @return a String that contains the title + */ private String getTitle() { return bundle.getString( "report.cpd.title" ); } + /** + * Method that generates the start of the CPD report. + */ public void beginDocument() { sink.head(); @@ -68,10 +78,15 @@ // TODO files summary } + /** + * Method that generates the contents of the CPD report + * + * @param matches + */ public void generate( Iterator matches ) { beginDocument(); - + while ( matches.hasNext() ) { Match match = (Match) matches.next(); @@ -80,7 +95,7 @@ String filename2 = match.getSecondMark().getTokenSrcID(); filename2 = StringUtils.substring( filename2, sourceDirectory.length() + 1 ); - + String code = match.getSourceCodeSlice(); int line1 = match.getFirstMark().getBeginLine(); int line2 = match.getSecondMark().getBeginLine(); @@ -105,7 +120,8 @@ if ( xrefLocation != null ) { - sink.link( xrefLocation + "/" + filename1.replaceAll( "\\.java$", ".html" ).replace( '\\', '/' ) + "#" + line1 ); + sink.link( xrefLocation + "/" + filename1.replaceAll( "\\.java$", ".html" ).replace( '\\', '/' ) + "#" + + line1 ); } sink.text( String.valueOf( line1 ) ); if ( xrefLocation != null ) @@ -124,7 +140,8 @@ sink.tableCell(); if ( xrefLocation != null ) { - sink.link( xrefLocation + "/" + filename2.replaceAll( "\\.java$", ".html" ).replace( '\\', '/' ) + "#" + line2 ); + sink.link( xrefLocation + "/" + filename2.replaceAll( "\\.java$", ".html" ).replace( '\\', '/' ) + "#" + + line2 ); } sink.text( String.valueOf( line2 ) ); if ( xrefLocation != null ) @@ -136,13 +153,13 @@ // Source snippet sink.tableRow(); - + // TODO Cleaner way to do this? - sink.rawText("<td colspan='2'>"); - sink.verbatim(false); + sink.rawText( "<td colspan='2'>" ); + sink.verbatim( false ); sink.text( code ); sink.verbatim_(); - sink.rawText("</td>"); + sink.rawText( "</td>" ); sink.tableRow_(); sink.table(); sink.paragraph_(); Modified: maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdViolationCheckMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdViolationCheckMojo.java?rev=418216&r1=418215&r2=418216&view=diff ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdViolationCheckMojo.java (original) +++ maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/CpdViolationCheckMojo.java Fri Jun 30 02:37:11 2006 @@ -29,6 +29,9 @@ public class CpdViolationCheckMojo extends AbstractPmdViolationCheckMojo { + /** + * @see org.apache.maven.plugin.AbstractMojo#execute() + */ public void execute() throws MojoExecutionException, MojoFailureException { Modified: maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/Locator.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/Locator.java?rev=418216&r1=418215&r2=418216&view=diff ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/Locator.java (original) +++ maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/Locator.java Fri Jun 30 02:37:11 2006 @@ -1,7 +1,7 @@ package org.apache.maven.plugin.pmd; /* - * Copyright 2004-2005 The Apache Software Foundation. + * Copyright 2004-2006 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,7 +27,7 @@ import java.net.URL; /** - * Performs Locator services for the <code>*Location</code> parameters in the + * Performs Locator services for the <code>*Location</code> parameters in the * Reports. * * @author <a href="mailto:[EMAIL PROTECTED]">Joakim Erdfelt</a> @@ -38,7 +38,7 @@ /** * Create a Locator object. - * + * * @param log the logger object to log with. */ public Locator( Log log ) @@ -48,7 +48,7 @@ /** * Obtain a Log object. - * + * * @return the Log object. */ private Log getLog() @@ -61,17 +61,17 @@ } /** - * <p> + * <p/> * Attempts to resolve a location parameter into a real file. * </p> - * - * <p> + * <p/> + * <p/> * Checks a location string to for a resource, URL, or File that matches. * If a resource or URL is found, then a local file is created with that * locations contents. * </p> - * - * @param location the location string to match against. + * + * @param location the location string to match against. * @param localfile the local file to use in case of resource or URL. * @return the File of the resolved location. * @throws IOException if file is unable to be found or copied into <code>localfile</code> destination. Modified: maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java?rev=418216&r1=418215&r2=418216&view=diff ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java (original) +++ maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReport.java Fri Jun 30 02:37:11 2006 @@ -1,7 +1,7 @@ package org.apache.maven.plugin.pmd; /* - * Copyright 2005 The Apache Software Foundation. + * Copyright 2005-2006 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -71,11 +71,11 @@ * @parameter expression="${targetJdk}" */ private String targetJdk; - + /** * The rule priority threshold; rules with lower priority * than this will not be evaluated. - * + * * @parameter expression="${minimumPriority}" default-value="5" */ private int minimumPriority = 5; @@ -86,8 +86,7 @@ * * @parameter */ - private String[] rulesets = - new String[]{"rulesets/basic.xml", "rulesets/unusedcode.xml", "rulesets/imports.xml",}; + private String[] rulesets = new String[]{"rulesets/basic.xml", "rulesets/unusedcode.xml", "rulesets/imports.xml",}; /** * The file encoding to use when reading the java source. @@ -157,7 +156,7 @@ Locator locator = new Locator( getLog() ); RuleSetFactory ruleSetFactory = new RuleSetFactory(); - ruleSetFactory.setMinimumPriority(this.minimumPriority); + ruleSetFactory.setMinimumPriority( this.minimumPriority ); RuleSet[] sets = new RuleSet[rulesets.length]; try { @@ -240,6 +239,12 @@ } } + /** + * Convenience method to get the location of the specified file name. + * + * @param name the name of the file whose location is to be resolved + * @return a String that contains the absolute file name of the file + */ private String getLocationTemp( String name ) { String loc = name; @@ -291,6 +296,14 @@ return "pmd"; } + /** + * Convenience method to get the list of files where the PMD tool will be executed + * + * @param includes contains the concatenated list of files to be included + * @param excludes contains the concatenated list of files to be excluded + * @return a List of the files where the PMD tool will be executed + * @throws IOException + */ private List getFilesToProcess( String includes, String excludes ) throws IOException { @@ -325,6 +338,12 @@ return ResourceBundle.getBundle( "pmd-report", locale, PmdReport.class.getClassLoader() ); } + /** + * Convenience method that concatenates the files to be excluded into the appropriate format + * + * @param exclude the array of Strings that contains the files to be excluded + * @return a String that contains the concatenates file names + */ private String getExclusionsString( String[] exclude ) { StringBuffer excludes = new StringBuffer(); Modified: maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReportListener.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReportListener.java?rev=418216&r1=418215&r2=418216&view=diff ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReportListener.java (original) +++ maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdReportListener.java Fri Jun 30 02:37:11 2006 @@ -1,7 +1,7 @@ package org.apache.maven.plugin.pmd; /* - * Copyright 2005 The Apache Software Foundation. + * Copyright 2005-2006 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -99,8 +99,7 @@ { public int compare( Object o1, Object o2 ) { - return ( (RuleViolation) o1 ).getBeginLine() - - ( (RuleViolation) o2 ).getBeginLine(); + return ( (RuleViolation) o1 ).getBeginLine() - ( (RuleViolation) o2 ).getBeginLine(); } } ); @@ -119,7 +118,7 @@ int endLine = ruleViolation.getEndLine(); if ( endLine != beginLine ) { - sink.text( " - "); + sink.text( " - " ); outputLineLink( endLine ); } Modified: maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdViolationCheckMojo.java URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdViolationCheckMojo.java?rev=418216&r1=418215&r2=418216&view=diff ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdViolationCheckMojo.java (original) +++ maven/plugins/trunk/maven-pmd-plugin/src/main/java/org/apache/maven/plugin/pmd/PmdViolationCheckMojo.java Fri Jun 30 02:37:11 2006 @@ -29,6 +29,9 @@ public class PmdViolationCheckMojo extends AbstractPmdViolationCheckMojo { + /** + * @see org.apache.maven.plugin.AbstractMojo#execute() + */ public void execute() throws MojoExecutionException, MojoFailureException { Added: maven/plugins/trunk/maven-pmd-plugin/src/site/apt/examples/generatingPmdAndCpd.apt URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/site/apt/examples/generatingPmdAndCpd.apt?rev=418216&view=auto ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/site/apt/examples/generatingPmdAndCpd.apt (added) +++ maven/plugins/trunk/maven-pmd-plugin/src/site/apt/examples/generatingPmdAndCpd.apt Fri Jun 30 02:37:11 2006 @@ -0,0 +1,43 @@ + ------ + Using PMD and CPD Reports + ------ + 30 June 2006 + ------ + + + +Using PMD And CPD Reports + + The PMD and CPD reports share the same configuration. For example, the following + tells Maven to run the PMD and CPD report as part of the site report generation, use the default rule sets: + 'basic', 'unused' and 'imports'. Note that HTML is always generated in addition to any other alternate format. + Legal formats are "html", "csv", "xml" and "txt". + + The reports will link directly to the cross-referenced source if you enable this with the linkXRef parameter. + See the {{{http://maven.apache.org/maven-jxr-plugin/}JXR}} plugin for more details. + + If your source uses a non-default encoding, you can use the sourceEncoding parameter to tell Maven which + encoding to use when reading the java source. + + You can configure the minimum code size which trips the CPD. The default of 100 tokens corresponds + to approxiamately 5-10 lines of code. + + Since PMD parses the Java source, it needs to know which Java version to use. The default is 1.4. The following is a + possible configuration: + ++-----+ +<reporting> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-pmd-plugin</artifactId> + <configuration> + <sourceEncoding>utf-8</sourceEncoding> + <minimumTokens>100</minimumTokens> + <targetJdk>1.5</targetJdk> + <minimumPriority>5</minimumPriority> + </configuration> + </plugin> + </plugins> +</reporting> ++-----+ \ No newline at end of file Added: maven/plugins/trunk/maven-pmd-plugin/src/site/apt/examples/usingRuleSets.apt URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/site/apt/examples/usingRuleSets.apt?rev=418216&view=auto ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/site/apt/examples/usingRuleSets.apt (added) +++ maven/plugins/trunk/maven-pmd-plugin/src/site/apt/examples/usingRuleSets.apt Fri Jun 30 02:37:11 2006 @@ -0,0 +1,40 @@ + ------ + Using Rule Sets + ------ + Maria Odea Ching + ------ + 30 June 2006 + ------ + + +Using Rule Sets + + The PMD plugin uses three default rule sets: basic.xml, unusedcode.xml and imports.xml. These rule sets are bundled in + the PMD code analysis tool. To use other rule sets, you can configure the plugin as shown below: + ++-----+ +<reporting> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-pmd-plugin</artifactId> + <configuration> + <rulesets> + <ruleset>/rules/braces.xml</ruleset> + <ruleset>/rules/naming.xml</ruleset> + <ruleset>d:\rulesets\strings.xml</ruleset> + <ruleset>http://localhost/design.xml</ruleset> + </rulesets> + </configuration> + </plugin> + </plugins> +</reporting> ++-----+ + + The rulesets may reside in the classpath, filesystem or at a URL. For rule sets that are already bundled with the PMD tool, + you do not need to specificy the absolute path of the file. It will be resolved by the plugin. But if the rule set is a + custom rule set, you need to specify its absolute path. + + + + Added: maven/plugins/trunk/maven-pmd-plugin/src/site/apt/examples/violationChecking.apt URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/site/apt/examples/violationChecking.apt?rev=418216&view=auto ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/site/apt/examples/violationChecking.apt (added) +++ maven/plugins/trunk/maven-pmd-plugin/src/site/apt/examples/violationChecking.apt Fri Jun 30 02:37:11 2006 @@ -0,0 +1,35 @@ + ------ + Violation Checking + ------ + 23 June 2006 + ------ + + + +Violation Checking + + The pmd:check and pmd:cpd-check goals allow you to configure your build to fail if any errors are found in the PMD or + CPD reports respectively and, in doing so, enforce your own custom code quality rules. + + The following code fragment enables both the standard PMD check and the CPD check in a build, during the <<<verify>>> + phase. + ++-----+ +<build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-pmd-plugin</artifactId> + <executions> + <execution> + <goals> + <goal>check</goal> + <goal>cpd-check</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> +</build> ++-----+ + Added: maven/plugins/trunk/maven-pmd-plugin/src/site/apt/faq.apt URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/site/apt/faq.apt?rev=418216&view=auto ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/site/apt/faq.apt (added) +++ maven/plugins/trunk/maven-pmd-plugin/src/site/apt/faq.apt Fri Jun 30 02:37:11 2006 @@ -0,0 +1,13 @@ + ------ + FAQs + ------ + Maria Odea Ching + ------ + 30 June 2006 + ------ + + + +FAQs + + Below are frequently asked questions for the PMD plugin: Added: maven/plugins/trunk/maven-pmd-plugin/src/site/apt/overview.apt URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/site/apt/overview.apt?rev=418216&view=auto ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/site/apt/overview.apt (added) +++ maven/plugins/trunk/maven-pmd-plugin/src/site/apt/overview.apt Fri Jun 30 02:37:11 2006 @@ -0,0 +1,41 @@ + ------ + Overview + ------ + 06 January 2006 + ------ + +Overview + + The {{{http://pmd.sourceforge.net/}PMD}} plugin allows you to automatically run the PMD code analysis tool + on your project's source code and generate a site report with its results. It supports the standard functions + provided by the PMD tool including the Copy/Paste Detector or CPD. + + The plugin accepts configuration parameters that will be used to customize the execution of the PMD tool. + + +* Goals Overview + + The PMD plugin has 4 goals: + + * {{{index.html}pmd:pmd}} creates a PMD site report based on the rulesets and configuration set in the plugin. It can also + generate a pmd output file aside from the site report in any of the following formats: xml, csv or txt. + + * {{{index.html}pmd:cpd}} generates a report for PMD's Copy/Paste Detector (CPD) tool. Same as with the pmd:pmd goal, it can + also generate a cpd output file in any of these formats: xml, csv or txt. + + * {{{index.html}pmd:check}} verifies that the PMD report is empty and fail the build if it is not. This goal is executed by + default when pmd:pmd is executed. + + * {{{index.html}pmd:cpd-check}} verifies that the CPD report is empty and fail the build if it is not. This goal is also + executed by default when pmd:cpd is executed. + +* Usage + + Some basic instructions for configuring and using the mojos of the <<<maven-pmd-plugin>>> can be found in + the {{{usage.html}Usage guide}}. + +* Examples + + Sample use-cases for the plugin are available under the Examples menu. + + Added: maven/plugins/trunk/maven-pmd-plugin/src/site/apt/usage.apt URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/site/apt/usage.apt?rev=418216&view=auto ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/site/apt/usage.apt (added) +++ maven/plugins/trunk/maven-pmd-plugin/src/site/apt/usage.apt Fri Jun 30 02:37:11 2006 @@ -0,0 +1,48 @@ + ------ + Usage + ------ + Maria Odea Ching + ------ + 23 June 2006 + ------ + + +Usage + + The PMD plugin generates PMD and CPD reports using the PMD code analysis tool. + + To include a report with default rule sets and configuration in your project site, set the following in the \<reporting\> + section of your pom: + ++-----+ +<reporting> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-pmd-plugin</artifactId> + </plugin> + </plugins> +</reporting> ++-----+ + + You can also explicitly execute the PMD plugin and generate the same report by setting the plugin in the \<build\> + section of your pom as shown below: + ++-----+ +<build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-pmd-plugin</artifactId> + </plugin> + </plugins> +</build> ++-----+ + + + + + + + + \ No newline at end of file Modified: maven/plugins/trunk/maven-pmd-plugin/src/site/site.xml URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-pmd-plugin/src/site/site.xml?rev=418216&r1=418215&r2=418216&view=diff ============================================================================== --- maven/plugins/trunk/maven-pmd-plugin/src/site/site.xml (original) +++ maven/plugins/trunk/maven-pmd-plugin/src/site/site.xml Fri Jun 30 02:37:11 2006 @@ -15,7 +15,15 @@ </links> <menu name="Overview"> - <item name="How to Use" href="howto.html"/> + <item name="Overview" href="overview.html"/> + <item name="Usage" href="usage.html"/> + <item name="FAQ" href="faq.html"/> + </menu> + + <menu name="Examples"> + <item name="Generating PMD and CPD Reports" href="examples/generatingPmdAndCpd.html"/> + <item name="Using Rule Sets" href="examples/usingRuleSets.html"/> + <item name="Violation Checking" href="examples/violationChecking.html"/> </menu> ${reports} </body>