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/