Xero-Java icon indicating copy to clipboard operation
Xero-Java copied to clipboard

Maven Enforcer failing with dependency convergence error because of bad Maven POMs in XeroAPI

Open karolkrzyzak opened this issue 4 years ago • 1 comments

I checked three versions of the API

  • Version 4.7.0, 4.7.1, 4.7.2

It looks like this "Maven Enforcer" is failing because the xeroapi:xero-java POMs are broken in Maven Central.

The first issue with dependency.

Dependency convergence error for javax.ws.rs:javax.ws.rs-api:2.1 paths to dependency are:
+-com.karol.xero:service:12.24.1-SNAPSHOT
  +-com.github.xeroapi:xero-java:4.7.0
    +-org.glassfish.jersey.core:jersey-client:2.27
      +-javax.ws.rs:javax.ws.rs-api:2.1
and
+-com.karol.xero:service:12.24.1-SNAPSHOT
  +-com.github.xeroapi:xero-java:4.7.0
    +-org.glassfish.jersey.core:jersey-client:2.27
      +-org.glassfish.jersey.core:jersey-common:2.27
        +-javax.ws.rs:javax.ws.rs-api:2.1
and
+-com.karol.xero:service:12.24.1-SNAPSHOT
  +-com.github.xeroapi:xero-java:4.7.0
    +-org.glassfish.jersey.media:jersey-media-json-jackson:2.25.1
      +-org.glassfish.jersey.ext:jersey-entity-filtering:2.25.1
        +-javax.ws.rs:javax.ws.rs-api:2.0.1

Looks like org.glassfish.jersey.core:jersey-client:2.27 depends on javax.ws.rs:javax.ws.rs-api:2.1 and org.glassfish.jersey.ext:jersey-entity-filtering:2.25.1 depends on javax.ws.rs:javax.ws.rs-api:2.0.1

The second issue with dependency

Dependency convergence error for org.glassfish.jersey.core:jersey-common:2.27 paths to dependency are:
+-com.karol.xero:service:12.24.1-SNAPSHOT
  +-com.github.xeroapi:xero-java:4.7.0
    +-org.glassfish.jersey.core:jersey-client:2.27
      +-org.glassfish.jersey.core:jersey-common:2.27
and
+-com.karol.xero:service:12.24.1-SNAPSHOT
  +-com.github.xeroapi:xero-java:4.7.0
    +-org.glassfish.jersey.media:jersey-media-multipart:2.27
      +-org.glassfish.jersey.core:jersey-common:2.27
and
+-com.karol.xero:service:12.24.1-SNAPSHOT
  +-com.github.xeroapi:xero-java:4.7.0
    +-org.glassfish.jersey.media:jersey-media-json-jackson:2.25.1
      +-org.glassfish.jersey.core:jersey-common:2.25.1

Looks like org.glassfish.jersey.core:jersey-client:2.27 depends on org.glassfish.jersey.core:jersey-common:2.27 and org.glassfish.jersey.ext:jersey-entity-filtering:2.25.1 depends on org.glassfish.jersey.core:jersey-common:2.25.1

To Reproduce Add maven-enforcer-plugin:1.4.1:enforce (enforce-dependency-convergence) plugin to the POM and try to do maven clean install

Expected behavior Fix POMs that maven enforcer pluing will pass.

karolkrzyzak avatar Mar 16 '21 10:03 karolkrzyzak

@karolkrzyzak - I'll add this to our backlog as an enhancement and leave this issue open.

SidneyAllen avatar Mar 19 '21 18:03 SidneyAllen