Eclipse setup
Install and prepare Eclipse
- Download and install Eclipse (Indigo or Juno is recommended);
- Install Scala 2.9.x IDE plugin as described here. Make sure to get the right bundle / update site according with your Eclipse version;
- Install IvyIDE plugin as described here. This will allow to automatically create classpath containers starting from ivy files;
Checkout Kafka source
- git clone http://git-wip-us.apache.org/repos/asf/kafka.git <kafka.project.dir>
Generate Eclipse project files
cd <kafka.project.dir>
Generate the eclipse projects with:
./gradlew eclipse
. This command will create eclipse projects for every project defined in Kafka.
Create the Eclipse workspace
- Open Eclipse and create a new workspace;
- Import the generated project (File -> Import -> General -> Existing Projects into Workspace)
- Navigate to the <kafka.project.dir>. Eclipse will find the projects generated by the previous command;
- Select the projects you want to import;
You should see the projects you have imported. For running unit tests and Kafka broker refer to the previous section.
You will need regenerate the projects and refresh eclipse every time there is a change in the projects dependencies. In other words, you need to run ./gradlew eclipse
and refresh eclipse.
Intellij Setup
Install and prepare IntelliJ
- Download and install IntelliJ;
- Install the IntelliJ IDEA Scala Plugin (Preferences -> Plugins -> Browse Repositories -> Search for Scala);
Checkout Kafka source
- git clone http://git-wip-us.apache.org/repos/asf/kafka.git<kafka.project.dir>
Temporary Hacks
Currently IntelliJ Scala Plugin doesn't support 2.8.0 Scala, so to use IntelliJ you need to temporary upgrade Kafka's Scala version by editing gradle.properties scalaVersion to 2.9.2.
Also remove this file core/src/main/scala/kafka/utils/Annotations_2.9+.scala as it clashes with the Scala Plugin.
Update libraries and generate IntelliJ project files
- cd <kafka.project.dir>
- ./gradlew idea
Create IntelliJ workspace
- Open Intellij and click open project pointing to <kafka.project.dir>