Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

REEF is available on both Linux and Windows and supports developing applications in the Java or C# programming languages.

REEF Git Repositories

Building on Linux

Building on Windows

Compiling

Java build instructions

C# build instructions

 

 

Setup your environment

  • Install Java Development Kit 7 or 8. Make sure that $JAVA_HOME points to it.
  • Install Maven 3 or newer. Make sure that mvn is in your $PATH and $M2_HOME points to its installation.
  • Install Protocol Buffers Compiler (protoc) 2.5 Make sure that protoc is in your PATH. Note: You need to install version 2.5. Newer versions won't work.
  • For C# support:

With these requirements met, the instructions below should work regardless of OS choice and command line interpreter   

Cloning the repository

Committers

Code Block
languagepowershell
titleCloning the REEF repository for committers
git clone https://git-wip-us.apache.org/repos/asf/incubator-reef.git

Users

Code Block
languagepowershell
titleCloning the REEF repository for everyone else
git clone git://git.apache.org/incubator-reef.git

Compiling

Java Code only

REEF is built using Maven. Hence, a simple

Code Block
languagepowershell
titleCompiling REEF Java only
mvn clean install

 should suffice. Not that we have quite a few integration tests in the default build. Hence, you might be better off using

Code Block
languagepowershell
titleCompiling REEF Java without tests
mvn -TC1 -DskipTests clean install

This runs one thread per core (-TC1) and skips the tests (-DskipTests)

Java and .NET

The whole build is triggered via Maven:

Code Block
languagepowershell
titleCompiling REEF Java and .NET
mvn -PBridge -PDotNet clean install

Or, without tests:

Code Block
languagepowershell
titleCompiling REEF Java and .NET without Tests
mvn -TC1 -PBridge -PDotNet -DskipTests clean install

Note: You will see many exception printouts during the compilation of REEF with tests. Those are not, in fact, problems with the build: REEF guarantees that exceptions thrown on remote machines get serialized and shipped back to the Driver. We have extensive unit tests for that feature that produce the confusing printouts.