REEF is available on both Linux and Windows and supports developing applications in the Java or C# programming languages.
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 |
---|
language | powershell |
---|
title | Cloning the REEF repository for committers |
---|
|
git clone https://git-wip-us.apache.org/repos/asf/incubator-reef.git |
Users
Code Block |
---|
language | powershell |
---|
title | Cloning 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 |
---|
language | powershell |
---|
title | Compiling 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 |
---|
language | powershell |
---|
title | Compiling 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 |
---|
language | powershell |
---|
title | Compiling REEF Java and .NET |
---|
|
mvn -PBridge -PDotNet clean install |
Or, without tests:
Code Block |
---|
language | powershell |
---|
title | Compiling 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.