Skip to content

Conflicting dependency versions #347

Closed
@dominikks

Description

@dominikks

First of all, thank you for this great library!

However, I have experienced a minor issue when using this library while also using the maven-enforcer-plugin with the dependencyConvergence rule as part of the build process. The plugin reveals that there are conflicting dependency versions defined in graphql-java-tools:

[WARNING] 
Dependency convergence error for org.jetbrains.kotlin:kotlin-stdlib:1.3.31 paths to dependency are:
+-com....
  +-com.graphql-java-kickstart:graphql-java-tools:5.7.1
    +-org.jetbrains.kotlin:kotlin-stdlib:1.3.31
and
+-com....
  +-com.graphql-java-kickstart:graphql-java-tools:5.7.1
    +-org.jetbrains.kotlin:kotlin-reflect:1.3.31
      +-org.jetbrains.kotlin:kotlin-stdlib:1.3.31
and
+-com....
  +-com.graphql-java-kickstart:graphql-java-tools:5.7.1
    +-org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.2.1
      +-org.jetbrains.kotlin:kotlin-stdlib:1.3.30
and
+-com....
  +-com.graphql-java-kickstart:graphql-java-tools:5.7.1
    +-org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.2.1
      +-org.jetbrains.kotlinx:kotlinx-coroutines-core:1.2.1
        +-org.jetbrains.kotlin:kotlin-stdlib:1.3.30
and
+-com....
  +-com.graphql-java-kickstart:graphql-java-tools:5.7.1
    +-org.jetbrains.kotlinx:kotlinx-coroutines-reactive:1.2.1
      +-org.jetbrains.kotlin:kotlin-stdlib:1.3.30

[WARNING] 
Dependency convergence error for org.jetbrains.kotlin:kotlin-stdlib-common:1.3.31 paths to dependency are:
+-com....
  +-com.graphql-java-kickstart:graphql-java-tools:5.7.1
    +-org.jetbrains.kotlin:kotlin-stdlib:1.3.31
      +-org.jetbrains.kotlin:kotlin-stdlib-common:1.3.31
and
+-com....
  +-com.graphql-java-kickstart:graphql-java-tools:5.7.1
    +-org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.2.1
      +-org.jetbrains.kotlinx:kotlinx-coroutines-core:1.2.1
        +-org.jetbrains.kotlin:kotlin-stdlib-common:1.3.30

[WARNING] 
Dependency convergence error for org.jetbrains.kotlin:kotlin-reflect:1.3.31 paths to dependency are:
+-com....
  +-com.graphql-java-kickstart:graphql-java-tools:5.7.1
    +-org.jetbrains.kotlin:kotlin-reflect:1.3.31
and
+-com....
  +-com.graphql-java-kickstart:graphql-java-tools:5.7.1
    +-com.fasterxml.jackson.module:jackson-module-kotlin:2.9.9
      +-org.jetbrains.kotlin:kotlin-reflect:1.3.10

While graphql-java-tools depends on kotlin-stdlib:1.3.31, it also depends on kotlinx-coroutines-*:1.2.1 which in turn depends on kotlin-stblib:1.3.30. A similar thing happens with kotlin-reflect.

Normally, Maven simply chooses one of the dependencies and ignores the different version requirements. However, as we are using the maven-enforcer-plugin as part of the build process, adding graphql-java-tools makes the build fail because of them. While I can work around this issue by manually adding kotlin-stdlib and kotlin-reflect as dependencies, this is not really a good solution in my opinion as it makes it less clear where dependencies come from and also makes it more difficult to upgrade dependency versions later on.

Therefore, I would greatly appreciate it if those conflicting dependencies could be resolved so that we can use the library without adding any additional dependencies. I can make a PR to try and solve this issue myself, if you are interested.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions