open-eid / digidoc4j

DigiDoc for Java. Javadoc:
http://open-eid.github.io/digidoc4j
GNU Lesser General Public License v2.1
72 stars 40 forks source link

Entry BOOT-INF/lib/jaxb-core-4.0.2.jar is a duplicate #119

Closed saxomoose closed 1 year ago

saxomoose commented 1 year ago

Building with latest release of digidoc4j gives following error:

Execution failed for task ':web:bootJar'.
> Entry BOOT-INF/lib/jaxb-core-4.0.2.jar is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/8.1.1/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.

Running dependencyInsight task gives following output:

> Task :web:dependencyInsight
com.sun.xml.bind:jaxb-core:4.0.2 (selected by rule)
  Variant runtime:
    | Attribute Name                 | Provided     | Requested    |
    |--------------------------------|--------------|--------------|
    | org.gradle.status              | release      |              |
    | org.gradle.category            | library      | library      |
    | org.gradle.libraryelements     | jar          | jar          |
    | org.gradle.usage               | java-runtime | java-runtime |
    | org.gradle.dependency.bundling |              | external     |
    | org.gradle.jvm.environment     |              | standard-jvm |
    | org.gradle.jvm.version         |              | 17           |

com.sun.xml.bind:jaxb-core:4.0.2
\--- com.sun.xml.bind:jaxb-impl:4.0.2
     \--- org.digidoc4j:digidoc4j:5.1.0 (requested com.sun.xml.bind:jaxb-impl:2.3.8)
          \--- runtimeClasspath (requested org.digidoc4j:digidoc4j:latest.release)

com.sun.xml.bind:jaxb-core:2.3.0.1 -> 4.0.2
\--- org.digidoc4j:digidoc4j:5.1.0
     \--- runtimeClasspath (requested org.digidoc4j:digidoc4j:latest.release)

org.glassfish.jaxb:jaxb-core:4.0.2 (selected by rule)
  Variant runtime:
    | Attribute Name                 | Provided     | Requested    |
    |--------------------------------|--------------|--------------|
    | org.gradle.status              | release      |              |
    | org.gradle.category            | library      | library      |
    | org.gradle.libraryelements     | jar          | jar          |
    | org.gradle.usage               | java-runtime | java-runtime |
    | org.gradle.dependency.bundling |              | external     |
    | org.gradle.jvm.environment     |              | standard-jvm |
    | org.gradle.jvm.version         |              | 17           |

org.glassfish.jaxb:jaxb-core:4.0.2
\--- org.glassfish.jaxb:jaxb-runtime:4.0.2
     +--- org.digidoc4j:digidoc4j:5.1.0 (requested org.glassfish.jaxb:jaxb-runtime:2.3.8)
     |    \--- runtimeClasspath (requested org.digidoc4j:digidoc4j:latest.release)
     +--- org.digidoc4j.dss:dss-jaxb-parsers:5.11.1.d4j.1 (requested org.glassfish.jaxb:jaxb-runtime:2.3.6)
     |    +--- org.digidoc4j.dss:dss-detailed-report-jaxb:5.11.1.d4j.1
     |    |    +--- org.digidoc4j:digidoc4j:5.1.0 (*)
     |    |    \--- org.digidoc4j.dss:validation-policy:5.11.1.d4j.1
     |    |         +--- org.digidoc4j:digidoc4j:5.1.0 (*)
     |    |         \--- org.digidoc4j.dss:dss-document:5.11.1.d4j.1
     |    |              +--- org.digidoc4j:digidoc4j:5.1.0 (*)
     |    |              +--- org.digidoc4j.dss:dss-xades:5.11.1.d4j.1
     |    |              |    +--- org.digidoc4j:digidoc4j:5.1.0 (*)
     |    |              |    +--- org.digidoc4j.dss:dss-tsl-validation:5.11.1.d4j.1
     |    |              |    |    \--- org.digidoc4j:digidoc4j:5.1.0 (*)
     |    |              |    \--- org.digidoc4j.dss:dss-asic-xades:5.11.1.d4j.1
     |    |              |         \--- org.digidoc4j:digidoc4j:5.1.0 (*)
     |    |              +--- org.digidoc4j.dss:dss-cades:5.11.1.d4j.1
     |    |              |    +--- org.digidoc4j:digidoc4j:5.1.0 (*)
     |    |              |    +--- org.digidoc4j.dss:dss-asic-cades:5.11.1.d4j.1
     |    |              |    |    \--- org.digidoc4j:digidoc4j:5.1.0 (*)
     |    |              |    \--- org.digidoc4j.dss:dss-pades:5.11.1.d4j.1
     |    |              |         +--- org.digidoc4j:digidoc4j:5.1.0 (*)
     |    |              |         \--- org.digidoc4j.dss:dss-pades-pdfbox:5.11.1.d4j.1
     |    |              |              \--- org.digidoc4j:digidoc4j:5.1.0 (*)
     |    |              \--- org.digidoc4j.dss:dss-asic-common:5.11.1.d4j.1
     |    |                   +--- org.digidoc4j:digidoc4j:5.1.0 (*)
     |    |                   +--- org.digidoc4j.dss:dss-asic-xades:5.11.1.d4j.1 (*)
     |    |                   \--- org.digidoc4j.dss:dss-asic-cades:5.11.1.d4j.1 (*)
     |    +--- org.digidoc4j.dss:dss-diagnostic-jaxb:5.11.1.d4j.1
     |    |    +--- org.digidoc4j:digidoc4j:5.1.0 (*)
     |    |    \--- org.digidoc4j.dss:validation-policy:5.11.1.d4j.1 (*)
     |    +--- org.digidoc4j.dss:dss-policy-jaxb:5.11.1.d4j.1
     |    |    +--- org.digidoc4j:digidoc4j:5.1.0 (*)
     |    |    \--- org.digidoc4j.dss:validation-policy:5.11.1.d4j.1 (*)
     |    +--- org.digidoc4j.dss:dss-simple-report-jaxb:5.11.1.d4j.1
     |    |    +--- org.digidoc4j:digidoc4j:5.1.0 (*)
     |    |    \--- org.digidoc4j.dss:validation-policy:5.11.1.d4j.1 (*)
     |    +--- org.digidoc4j.dss:specs-validation-report:5.11.1.d4j.1
     |    |    \--- org.digidoc4j.dss:validation-policy:5.11.1.d4j.1 (*)
     |    +--- org.digidoc4j.dss:specs-trusted-list:5.11.1.d4j.1
     |    |    +--- org.digidoc4j.dss:dss-tsl-validation:5.11.1.d4j.1 (*)
     |    |    \--- org.digidoc4j.dss:specs-validation-report:5.11.1.d4j.1 (*)
     |    +--- org.digidoc4j.dss:dss-simple-certificate-report-jaxb:5.11.1.d4j.1
     |    |    \--- org.digidoc4j.dss:validation-policy:5.11.1.d4j.1 (*)
     |    \--- org.digidoc4j.dss:specs-xades:5.11.1.d4j.1
     |         +--- org.digidoc4j.dss:specs-validation-report:5.11.1.d4j.1 (*)
     |         \--- org.digidoc4j.dss:specs-trusted-list:5.11.1.d4j.1 (*)
     \--- org.digidoc4j.dss:dss-jaxb-common:5.11.1.d4j.1 (requested org.glassfish.jaxb:jaxb-runtime:2.3.6)
          +--- org.digidoc4j.dss:dss-jaxb-parsers:5.11.1.d4j.1 (*)
          \--- org.digidoc4j.dss:specs-xmldsig:5.11.1.d4j.1
               +--- org.digidoc4j.dss:specs-validation-report:5.11.1.d4j.1 (*)
               +--- org.digidoc4j.dss:specs-trusted-list:5.11.1.d4j.1 (*)
               \--- org.digidoc4j.dss:specs-xades:5.11.1.d4j.1 (*)

(*) - Indicates repeated occurrences of a transitive dependency subtree. Gradle expands transitive dependency subtrees only once per project; repeat occurrences only display the root of the subtree, followed by this annotation.

Could you look into this dependency conflict?

saxomoose commented 1 year ago

For reference, here is the link to my build file.

As a temporary fix, I excluded the com.sun.xml.bind group from the digidoc4j library.

rsarendus commented 1 year ago

Hello,

Would it be possible to force the latest JAXB 2.3.X dependency versions in your project? Digidoc4j does not function with JAXB version 4.0.2.

saxomoose commented 1 year ago

Thank you for the reply. I managed to downgrade the version of that transitive dependency. Isn't it weird that digidoc4j both depends on com.sun.xml.bind:jaxb-core and org.glassfish.jaxb:jaxb-core?

rsarendus commented 1 year ago

We will look into tidying up these dependencies for the next release. Thank you for your feedback!

rsarendus commented 1 year ago

Digidoc4j version 5.2.0 now explicitly uses org.glassfish.jaxb:jaxb-core dependency.