Skip to content

Latest commit

 

History

History

java

Kudu Java Developer Documentation

System Requirements

  • Runtime

    • Java 8+

  • Build time

    • Java 8+

  • Test time

    • Built Kudu Binaries

    • MIT Kerberos (krb5)

Building Everything

$ ./gradlew assemble

Building Just the Client

$ ./gradlew :kudu-client:assemble

The client jar can then be found at kudu-client/build/libs.

Running the Tests

The tests may locate the master and tablet server binaries by looking in build/latest/bin from the root of the git repository. If you have recently built the C++ code for Kudu, those should be present already.

If for some reason the binaries aren’t in the expected location as shown above, you can pass -DkuduBinDir=/path/to/directory.

Once everything is setup correctly, run:

$ ./gradlew test

If you would like to force tests that were already run to re-run you can pass -PrerunTests. Another option is to run

$ ./gradlew cleanTest test

The difference is that the latter spends extra time re-building test state, while the former runs them again. Using -PrerunTests can be useful to quickly loop on tests with less slowdown. See here for more details.

If you would like to run a subset of the tests or a single test you can pass the Gradle --tests <pattern> argument to filter the tests ran. See here for detailed documentation of all pattern options.

Single Test Class Example:

$ ./gradlew :kudu-client:test --tests org.apache.kudu.TestColumnSchema

Single Test Method Example:

$ ./gradlew :kudu-client:test --tests org.apache.kudu.TestColumnSchema.testEquals

Pattern Example:

$ ./gradlew test --tests *IT*

Additional Gradle Commands

Discovering Other Gradle Tasks

$ ./gradlew tasks

Clearing Build State

$ ./gradlew clean

Note: You generally don’t need to run this task, but it can be useful to rule out any build issues.

Installing Artifacts to the Local Maven Repository

$ ./gradlew install

Checking for Dependency Updates

./gradlew dependencyUpdates
Note
Additional Gradle command line flag options can be found here.

Tips for IDEs

IntelliJ

Follow the standard instructions as laid out here to import the Gradle project.

For the most consistent behavior on the command line and in the IDE, be sure to enable Delegate IDE build/run actions to gradle and run tests using the Gradle Test Runner as described here.

Some of the classes generated by Kudu Protobuf files are larger than the default "intellisense" limit in Intellij. This means Intellij won’t provide code assistance for the classes in those files and may indicate that the classes in those files are not found. Follow the instructions here to set "idea.max.intellisense.filesize=5000" in the idea.properties file to work around this issue.

Eclipse

Follow the instructions as laid out here to install the Eclipse Gradle (Buildship) tooling. Then follow the instruction on the same page here to import an existing project.