2015-11-14 17:53:52 +01:00
# PMD
2012-11-17 17:00:27 +01:00
2015-09-25 11:50:09 +02:00
[![Build Status ](https://travis-ci.org/pmd/pmd.svg?branch=master )](https://travis-ci.org/pmd/pmd)
2015-11-14 17:53:52 +01:00
## About
2013-05-01 14:56:22 +02:00
PMD is a source code analyzer. It finds common programming flaws like unused variables, empty catch blocks,
2016-04-06 09:59:34 +02:00
unnecessary object creation, and so forth. It supports Java, JavaScript, Salesforce.com Apex, XML, XSL.
2013-05-01 14:56:22 +02:00
Additionally it includes CPD, the copy-paste-detector. CPD finds duplicated code in
2016-04-23 18:35:50 +02:00
Java, C, C++, C#, PHP, Ruby, Fortran, JavaScript, Salesforce.com Apex, Perl, Swift.
2012-11-17 17:00:27 +01:00
2015-11-14 17:53:52 +01:00
## Source
2013-05-01 14:56:22 +02:00
Our latest source of PMD can be found on [GitHub]. Fork us!
2015-11-14 17:53:52 +01:00
### How to build PMD?
2016-04-10 16:55:25 +02:00
You'll need to have a `~/.m2/toolchains.xml` file setup with jdk 1.6 (for pmd 5.3.x), jdk 1.7 (for pmd 5.4.x and pmd 5.5.x)
and jdk 1.8 (for some features in pmd 5.5.x). See [maven toolchains ](https://maven.apache.org/guides/mini/guide-using-toolchains.html ).
A example file can be found here: [example-toolchains.xml ](https://github.com/pmd/pmd/blob/master/example-toolchains.xml ).
Use maven in the top-level directory:
2015-11-14 17:53:52 +01:00
mvn clean package
This will create the zip files in the directory `pmd-dist/target` :
cd pmd-dist/target
ls *.zip
That's all !
2016-04-23 13:29:59 +02:00
### How to build the documentation (maven site)?
Building the maven site is done with the following commands:
mvn clean install -DskipTests=true
mvn install site site:stage -Psite
You'll find the built site in the directory `target/staging/` .
2015-11-14 17:53:52 +01:00
### Bug Reports
We are using Sourceforge for bug tracking. Please file your bugs at < https: / / sourceforge . net / p / pmd / bugs / > .
### Pull Requests
Pull requests are always welcome: < https: / / github . com / pmd / pmd / pulls >
2016-12-02 15:13:45 +01:00
### Code Style
PMD uses checkstyle to enforce a common code style.
See [pmd-checkstyle-config.xml ](https://github.com/pmd/build-tools/blob/master/config/src/main/resources/net/sourceforge/pmd/pmd-checkstyle-config.xml ) for the configuration and
[the eclipse configuration files ](https://github.com/pmd/build-tools/tree/master/config/eclipse ) that can
be imported into a fresh workspace.
2015-11-14 17:53:52 +01:00
## News and Website
2013-05-01 14:56:22 +02:00
More information can be found on our [Website] and on [SourceForge].
[GitHub]: https://github.com/pmd/pmd
2015-09-25 11:50:09 +02:00
[Website]: https://pmd.github.io
2013-05-01 14:56:22 +02:00
[SourceForge]: https://sourceforge.net/projects/pmd/