Hi,

To add support of Confluent Registry Schema in KafkaIO we added new dependency 
on “io.confluent:kafka-avro-serializer”. The artifacts of this dependency exist 
in external repository [1]. So, it should not be a problem to add this 
repository into the list of available repositories of Beam build system - it 
works fine to build Beam KafkaIO artifacts. 

The actual problem is with transitive dependency of 
“io.confluent:kafka-avro-serializer” in user code. We add this dependency into 
generated and then published KafkaIO's pom.xml but, to successfully resolve it, 
we need to add a new repository [1] as well (or user should add that manually 
in its pom which is definitevly not a perfect solution).

So, my questions to grade/build experts:

1) How to add more repositories into published pom.xml with gradle, like we do 
it in maven?

For example:
<repositories>
    <repository>
        <id>confluent</id>
        <url>https://packages.confluent.io/maven/</url>
    </repository>
</repositories>

I tried several ways to do that, like adding "repositories { maven { url 
"https://packages.confluent.io/maven/“ } }” into KafkaIO build.gradle but seems 
it doesn’t work (I don’t see any additional repositories in published pom 
file). 

2) Another option - would it better to vendor 
“io.confluent:kafka-avro-serializer” along with KafkaIO and do not add an 
addition dependency? Wdyt?

3) Any other recommendations of better solution for such case?

Any help on this topic will be very appreciated.

Alexey

[1] https://packages.confluent.io/maven/

Reply via email to