See our web site for details on the project.
You need to have Gradle and Java installed.
Kafka requires Gradle 2.0 or higher.
Java 7 should be used for building in order to support both Java 7 and Java 8 at runtime.
cd kafka_source_dir
gradle
Now everything else will work.
./gradlew jar
Follow instructions in http://kafka.apache.org/documentation.html#quickstart
./gradlew srcJar
./gradlew aggregatedJavadoc
./gradlew javadoc
./gradlew javadocJar # builds a javadoc jar for each module
./gradlew scaladoc
./gradlew scaladocJar # builds a scaladoc jar for each module
./gradlew docsJar # builds both (if applicable) javadoc and scaladoc jars for each module
./gradlew test
./gradlew cleanTest test
./gradlew -Dtest.single=RequestResponseSerializationTest core:test
./gradlew core:test --tests kafka.api.ProducerFailureHandlingTest.testCannotSendToInternalTopic
./gradlew clients:test --tests org.apache.kafka.clients.MetadataTest.testMetadataUpdateWaitTime
Change the log4j setting in either clients/src/test/resources/log4j.properties or core/src/test/resources/log4j.properties
./gradlew -i -Dtest.single=RequestResponseSerializationTest core:test
./gradlew reportCoverage
./gradlew clean
./gradlew releaseTarGz
The above command will fail if you haven't set up the signing key. To bypass signing the artifact, you can run:
./gradlew releaseTarGz -x signArchives
The release file can be found inside ./core/build/distributions/.
./gradlew clean
Note that if building the jars with a version other than 2.10, you need to set the SCALA_BINARY_VERSION variable or change it in bin/kafka-run-class.sh to run the quick start.
You can pass either the major version (eg 2.11) or the full version (eg 2.11.8):
./gradlew -PscalaVersion=2.11 jar
./gradlew -PscalaVersion=2.11 test
./gradlew -PscalaVersion=2.11 releaseTarGz
This is for core, examples and clients
./gradlew core:jar
./gradlew core:test
./gradlew tasks
Note that this is not strictly necessary (IntelliJ IDEA has good built-in support for Gradle projects, for example).
./gradlew eclipse
./gradlew idea
./gradlew jarAll
./gradlew testAll
./gradlew releaseTarGzAll
./gradlew uploadArchivesAll
Please note for this to work you should create/update ${GRADLE_USER_HOME}/gradle.properties (typically, ~/.gradle/gradle.properties) and assign the following variables
mavenUrl=
mavenUsername=
mavenPassword=
signing.keyId=
signing.password=
signing.secretKeyRingFile=
./gradlew installAll
./gradlew testJar
./gradlew core:dependencies --configuration runtime
./gradlew dependencyUpdates
./gradlew checkstyleMain checkstyleTest
This will most commonly be useful for automated builds w 6744 here the full resources of the host running the build and tests may not be dedicated to Kafka's build.
The following options should be set with a -D switch, for example ./gradlew -Dorg.gradle.project.maxParallelForms=1 test.
org.gradle.project.mavenUrl: sets the URL of the maven deployment repository (file://path/to/repocan be used to point to a local repository).org.gradle.project.maxParallelForks: limits the maximum number of processes for each task.org.gradle.project.showStandardStreams: shows standard out and standard error of the test JVM(s) on the console.org.gradle.project.skipSigning: skips signing of artifacts.org.gradle.project.testLoggingEvents: unit test events to be logged, separated by comma. For example./gradlew -Dorg.gradle.project.testLoggingEvents=started,passed,skipped,failed test
See vagrant/README.md.
Apache Kafka is interested in building the community; we would welcome any thoughts or patches. You can reach us on the Apache mailing lists.
To contribute follow the instructions here: