XeroAPI / Xero-Java

Official Java client for use with Xero API
MIT License
75 stars 87 forks source link

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

Open karolkrzyzak opened 3 years ago

karolkrzyzak commented 3 years ago

I checked three versions of the API

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.

SidneyAllen commented 3 years ago

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