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

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

where <VERSION> is the release version
