Building HttpComponents Core
============================

(1) Requisites
--------------
JDK 1.7+ is required in order to compile and run HttpCore.

HttpCore utilizes Maven as a distribution management and packaging tool.
Version 3.0.3 or later is required.

Maven installation and configuration instructions can be found here:

http://maven.apache.org/run-maven/index.html

(2) Executing test cases

Execute the following command in order to compile and test the components

mvn test

(3) Building packages

Execute the following command in order to build the JAR packages and install
them to the local repository:

mvn install

The JAR packages can be found in the target folders of their respective modules

httpcore/target/httpcore5-<VERSION>.jar
httpcore-osgi/target/org.apache.httpcomponents.httpcore_<VERSION>.jar

where <VERSION> is the release version

(4) Validating packages

Check for binary compatibility with the previous version with:

mvn clirr:check

Check for proper license headers with:

mvn apache-rat:check

(5) Building documentation

Execute the following command in order to generate javadoc:

mvn compile javadoc:aggregate

