kafka源碼環境搭建好之后,需要在IntelliJ IDEA開發工具中以debug方式啟動kafka服務器來測試消息的生產和消費。
但是在啟動kafka.Kafka類中的main方法(也就是運行 kafka-0.10.0.1-src\core\src\main\scala\kafka\Kafka.scala 類中的main方法)的時候遇到一個錯誤,錯誤信息的截圖如下:

Error:scalac: Output path D:\kafka-0.10.0.1-src\build is shared between:
Module 'kafka-0.10.0.1-src' production, Module 'kafka-0.10.0.1-src' tests Please configure separate output paths to proceed with the compilation. TIP: you can use Project Artifacts to combine compiled classes if needed.
大概意思是說kafka-0.10.0.1-src這個模塊的編譯輸出目錄有問題,需要為production和tests指定不同的編譯輸出目錄。
解決方案:
1.首先指定project的編譯輸出目錄:

2.然后修改kafka-0.10.0.1-src模塊的編譯輸出目錄:

再次在idea中啟動kafka服務器,會看到scalac開始編譯:


配置kafka服務器(添加一個application,main class選擇kafka.Kafka這個scala對象,因為它里面有一個main方法,啟動這個main方法就相當於啟動了kafka服務器)啟動參數:

配置生產者(ConsoleProducer,它里面也有一個main方法,啟動該main方法就相當於啟動了一個kafka生產者)啟動參數(在Program arguments中可以給生產者傳遞啟動參數):

配置消費者(ConsoleConsumer,它里面也有一個main方法,啟動這個main方法就相當於啟動了一個消費者)啟動參數(在Program arguments中可以給消費者傳遞啟動參數):

以debug方法啟動kafka服務器成功:

以debug方式啟動生產者成功,可以在控制台輸入消息,並回車,就可以向kafka服務器發送消息:

同樣以debug模式啟動消費者,在控制台可以看到有消息被消費:

