Как я могу использовать полный api клиента ksqldb с gradle?

Как я могу использовать полный api клиента ksqldb с gradle? Почему есть 2 разных пакета?

repositories {
    mavenCentral()
    jcenter()
    maven {
        url "https://packages.confluent.io/maven/"
    }
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib"
    compile group: 'io.confluent.ksql', name: 'ksqldb-api-client', version: '6.0.0'
}

Я хотел бы сослаться на v0.11.0. Он содержит больше методов: https://docs.ksqldb.io/en/latest/developer-guide/ksqldb-clients/java-client/api/io/confluent/ksql/api/client/Client.html

https://docs.ksqldb.io/en/0.10.0-ksqldb/developer-guide/ksqldb-clients/java-client/api/io/confluent/ksql/api/client/Client.html

import io.confluent.ksql.api.client.ClientOptions
import io.confluent.ksql.api.client.*

fun main()
{
    val KSQLDB_SERVER_HOST = "localhost"
    val KSQLDB_SERVER_HOST_PORT = 8089
    
    val clientOptions = ClientOptions.create()
        .setHost(KSQLDB_SERVER_HOST)
        .setPort(KSQLDB_SERVER_HOST_PORT)

    val client: Client = io.confluent.ksql.api.client.Client.create(clientOptions)

    val topics = client.listTopics() //not available in 6.0.0
}

Изменить: на основании сообщения @Hellmar Becker я хотел бы использовать автономную версию (от сообщества), а не коммерческую версию Confluent Platform. Похоже, что версия CP все равно использует более старую версию API.

Я нашел пример того, как это сделать с помощью pom.xml на Github руководство разработчика, но я хотел бы использовать файл build.gradle


person Kubus    schedule 12.01.2021    source источник


Ответы (2)


Существуют разные схемы нумерации для лицензированной сообществом KSQLDB (в настоящее время v0.12) и коммерческой платформы Confluent Platform (в настоящее время v6.0.1). Возможно, это сравнение поможет: https://docs.confluent.io/platform/current/ksqldb/index.html#ksqldb-standalone-and-ksqldb-for-cp.

person Hellmar Becker    schedule 12.01.2021
comment
спасибо Hellmar Becker. Я хочу попробовать версию для сообщества. Я предполагаю, что это бесплатная (не платная версия). Похоже, вариантов еще больше. Мой вопрос в том, как ссылаться на него в файле gradle. - person Kubus; 12.01.2021

Мне удалось преобразовать файл pom.xml в файл gradle.build из руководства разработчика следующим образом:

plugins {
    id 'java'
    id 'org.jetbrains.kotlin.jvm' version '1.4.21'
}

version '1.0-SNAPSHOT'

repositories {
    jcenter()
    maven() {
        url "https://ksqldb-maven.s3.amazonaws.com/maven/"
    }
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
    implementation "org.jetbrains.kotlin:kotlin-stdlib"

    implementation "io.confluent.ksql:ksqldb-api-client:0.11.0"
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
person Kubus    schedule 12.01.2021