# Apache BeanUtils build instructions

Building BeanUtils requires:

 - JDK 6/OpenJDK 6 or later (recommended: JDK 8)
   http://www.oracle.com/technetwork/java/javase/downloads/
   
 - Apache Maven 3 or later (recommended: Maven 3.3)
   https://maven.apache.org/download.cgi

The compiled BeanUtils JAR should work with Java 6 or later.


To build target/commons-beanutils-*.jar

    mvn clean package

or to install into your ~/.m2/repository

    mvn clean install

 
You can skip the unit tests by adding the parameter

    -DskipTests=true



To regenerate the web site (corresponding to the official
https://commons.apache.org/proper/commons-beanutils/ ) do

    mvn clean site

Note: the Apache Commons BeanUtils site should include a japicmp report for the
purpose of checking API version compatibility, to enable this, use Java 7 or
later and run instead:

    mvn clean package site -Pjapicmp


