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.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

httpclient5/target/httpclient5-<VERSION>.jar
httpclient5-cache/target/httpclient5-cache-<VERSION>.jar
httpclient5-fluent/target/httpclient5-fluent-<VERSION>.jar
httpclient5-osgi/target/org.apache.httpcomponents.httpclient_<VERSION>.jar

where <VERSION> is the release version

(4) Validating packages

Check for proper license headers with:

mvn apache-rat:check

