Building Apache CXF
=====================

Initial Setup
-------------

1) Install J2SE SDK, which can be downloaded from 
   http://www.oracle.com/technetwork/java/archive-139210.html#javase
   The minimum suported Java version is 1.8.

2) Make sure that your JAVA_HOME environment variable is set to the newly installed 
   JDK location, and that your PATH includes %JAVA_HOME%\bin (windows) or 
   $JAVA_HOME$/bin (unix).

3) Install Maven 3.1 or newer, which can be downloaded from 
   http://maven.apache.org/download.html. Make sure that your PATH includes 
   the MVN_HOME/bin directory. 


Building
--------

1) Change to the top level directory of Apache CXF source distribution.
2) Set the MAVEN_OPTS environment variable to include more memory
   Unix/Linux/OSX   $> export MAVEN_OPTS="-Xmx2048M"
   Windows          > set MAVEN_OPTS="-Xmx2048M"
3) Run
	$> mvn
   This will compile Apache CXF and run all of the tests in the Apache CXF source
   distribution. Alternatively, you can run
    $> mvn -Pfastinstall.
   This will compile Apache CXF without running the tests and takes less
   time to build.
   Depending on the load of remote Maven repositories, you may have 
   to run "mvn" several times until the required dependencies are 
   all located in your local maven repository. It usually takes some time for 
   maven to download required dependencies in the first build.

Building kit
------------
1) From top level, run
         $> mvn -Pfastinstall,everything
   This will build an Apache CXF distribution kit under "distribution/target"
   directory.
