我不是行家親和我被困試圖打包卡夫卡連接器。有兩個選項用於包裝它:
- 要麼你產生一個文件夾包含連接器+所有的依賴罐子罐子 - 所有特定卡夫卡瓶
- 或建立一個胖罐子所有的依賴關係(並且我也假設沒有kafka特定的jar包,但它在文檔中並不明確)。
我正在關注confluent webpage上的文檔,我試圖打包的連接器是this one on github。
我試過了,用git克隆回購後,下面是mvn clean package
。但是這似乎只創建了原始項目的一個罐子,並且依賴於mvn
緩存(~/.m2/repository/
)。
谷歌也有鏈接如何創建一個脂肪jar
,但我需要某種方式來指定我想從胖罐中排除哪些罐子。
感謝
UPDATE
現在我正在運行:
connect-standalone /etc/kafka/connect-standalone.properties /etc/kafka/connect-cdc-mssql-source.properties
凡/etc/kafka/connect-standalone.properties
包含以下行:
plugin.path=/shared_win_files
而且ls -al /shared_win_files
,包含3個NS如下:
kafka-connect-cdc-mssql-0.0.1-SNAPSHOT.jar
而且jar tvf kafka-connect-cdc-mssql-0.0.1-SNAPSHOT.jar
包含以下內容:
6996 Thu Sep 07 14:47:24 BST 2017 com/github/jcustenborder/kafka/connect/cdc/mssql/MsSqlSourceConnector.class
其中MsSqlSourceConnector.class
基本上this class這裏它實現了Connector
。
但是當我嘗試運行與該命令的接口上方,我得到一個錯誤
Failed to find any class that implements Connector and which name matches com.github.jcustenborder.kafka.connect.cdc.mssql.MsSqlSourceConnector
它給了所有可用的插件一個巨大的名單,但我並不在那裏。
SOLUTION
所以我也跟着Konstantine的答案如何包裝罐。剩下的問題是,當在KafkaConnect
配置中指定plugin.path=/abc
時,您必須小心。
您可以把一個fat jar
這樣的:
/abc/fatjar.jar
或者你有abc
創建另一個文件夾,並把所有的相關的罐子到該文件夾是這樣的:
/abd/my-connector-a/connector.jar
/abd/my-connector-a/connector-dependency.jar
...
如我的情況是將罐子視爲單獨的插件。
我更新了問題。遇到另一個錯誤,試圖使用打包的罐子:/ – eddyP23
非常感謝。我會繼續關注,希望能夠簡化。 – eddyP23