# How to build PMD PMD uses [Maven](https://maven.apache.org/) and requires at least Java 11 for building. You can get Java 11 from [Oracle](http://www.oracle.com/technetwork/java/javase/downloads/index.html) or from [AdoptOpenJdk](https://adoptopenjdk.net/). PMD uses the [maven wrapper](https://github.com/takari/maven-wrapper), so you can simply build PMD as following: * `./mvnw clean verify` (on Unix-like platform such as Linux and Mac OS X) * `mvnw.cmd clean verify` (on Windows) This will create the zip files in the directory `pmd-dist/target`: cd pmd-dist/target ls *.zip That's all ! **Note:** While Java 11 is required for building, running PMD only requires Java 7 (or Java 8 for Apex and the Designer). **Note:** With PMD 6.24.0, we are creating [Reproducible Builds](https://reproducible-builds.org/). Since we use [Maven](https://maven.apache.org/guides/mini/guide-reproducible-builds.html) for building, the following limitations apply: * Generally give **different results on Windows and Unix** because of different newlines. (carriage return linefeed on Windows, linefeed on Unixes). We build our releases under **Linux** on [Travis CI](https://travis-ci.org/pmd/pmd). * Generally depend on the **major version of the JDK** used to compile. (Even with source/target defined, each major JDK version changes the generated bytecode.). We build our releases using OpenJDK 11 (see "before_install" step in `.travis.yml`). ## How to build the documentation? cd docs bundle install # once bundle exec jekyll build You'll find the built site in the directory `_site/`. For more info, see [README in docs directory](docs/README.md).