Building HttpComponents Client 
============================

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

HttpClient 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

httpclient/target/httpclient5-<VERSION>.jar
httpclient-cache/target/httpclient5-cache-<VERSION>.jar
httpclient-fluent/target/httpclient5-fluent-<VERSION>.jar
httpclient-win/target/httpclient5-win-<VERSION>.jar
httpclient-osgi/target/org.apache.httpcomponents.httpclient_<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

