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
Generate coverage reports for the whole project:
./gradlew reportCoverage
Generate coverage for a single module, i.e.:
./gradlew clients: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.6, you need to set the SCALA_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
The eclipse
task has been configured to use ${project_dir}/build_eclipse
as Eclipse's build directory. Eclipse's default
build directory (${project_dir}/bin
) clashes with Kafka's scripts directory and we don't use Gradle's build directory
to avoid known issues with this configuration.
./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
There are two code quality analysis tools that we regularly run, findbugs and checkstyle.
Checkstyle enforces a consistent coding style in Kafka. You can run checkstyle using:
./gradlew checkstyleMain checkstyleTest
The checkstyle warnings will be found in reports/checkstyle/reports/main.html
and reports/checkstyle/reports/test.html
files in the
subproject build directories. They are also are printed to the console. The build will fai
7C7F
l if Checkstyle fails.
Findbugs uses static analysis to look for bugs in the code. You can run findbugs using:
./gradlew findbugsMain findbugsTest -x test
The findbugs warnings will be found in reports/findbugs/main.html
and reports/findbugs/test.html
files in the subproject build
directories. Currently, findbugs warnings do not cause the build to fail.
The following options should be set with a -D
switch, for example ./gradlew -Dorg.gradle.project.maxParallelForks=1 test
.
org.gradle.project.mavenUrl
: sets the URL of the maven deployment repository (file://path/to/repo
can 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: