Skip to content

Broken transitive dependencies for Maven artifacts #92

@afedulov

Description

@afedulov

The client has compile-time dependency on GRPC libraries, however the artifact published to Maven central declares them as runtime dependencies:

mvn dependency:tree

[INFO] +- io.qdrant:client:jar:1.16.0:compile
[INFO] |  +- io.grpc:grpc-protobuf:jar:1.68.2:runtime
[INFO] |  |  +- io.grpc:grpc-api:jar:1.68.2:runtime
[INFO] |  |  \- io.grpc:grpc-protobuf-lite:jar:1.68.2:runtime
[INFO] |  +- io.grpc:grpc-stub:jar:1.68.2:runtime
[INFO] |  \- io.grpc:grpc-netty-shaded:jar:1.68.2:runtime
[INFO] |     +- io.grpc:grpc-util:jar:1.68.2:runtime
[INFO] |     |  \- org.codehaus.mojo:animal-sniffer-annotations:jar:1.24:runtime
[INFO] |     +- io.grpc:grpc-core:jar:1.68.2:runtime
[INFO] |     |  \- com.google.android:annotations:jar:4.1.1.4:runtime
[INFO] |     \- io.perfmark:perfmark-api:jar:0.27.0:runtime

This causes the client builder to fail during the compilation with grpc-related errors:

java: cannot access io.grpc.ManagedChannel
  class file for io.grpc.ManagedChannel not found

and requires explicit inclusion of the compile-time dependencies

        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-protobuf</artifactId>
            <version>1.68.2</version>
        </dependency>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-stub</artifactId>
            <version>1.68.2</version>
        </dependency>

which is not reflected in the documentation.

Please consider switching the scope of these dependencies from implementation to api and republishing the artifacts or listing the missing compile-time dependencies explicitly in the documentation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions