Search code examples
javagradlebouncycastleflying-saucer

Module reads package from both


I found something similar to my problem, but it is related to maven not gradle: java 9 unnamed module reads package [X] from both ... while debugging (with IntelliJ)

I finally decided to start using the new-ish module system in java on my existing project. I created a module-info.java that contains:

requires com.sothawo.mapjfx;
requires MaterialFX;
requires thymeleaf;
requires org.apache.httpcomponents.httpclient;
requires com.fasterxml.jackson.databind;
requires org.apache.httpcomponents.httpcore;
requires bugsnag;
requires org.jfxtras.styles.jmetro;
requires org.slf4j;
requires javafx.swing;
requires itext;
requires flying.saucer.pdf;

And my build.gradle:

dependencies {
implementation ('io.github.palexdev:materialfx:11.13.0') {
    exclude group: 'org.openjfx'
}

implementation ('org.jfxtras:jmetro:11.6.15') {
    exclude group: 'org.openjfx'
}

implementation 'org.thymeleaf:thymeleaf:3.1.0.M1'
implementation 'org.xhtmlrenderer:flying-saucer-pdf:9.1.22'

implementation 'com.fasterxml.jackson.core:jackson-core:2.13.1'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.1'
implementation 'org.apache.httpcomponents:httpclient:4.5.13'

implementation 'org.slf4j:slf4j-api:1.7.36'
implementation 'org.slf4j:slf4j-simple:1.7.36'

implementation 'com.bugsnag:bugsnag:3.6.3'

implementation 'com.sothawo:mapjfx:3.1.0'

testImplementation("org.junit.jupiter:junit-jupiter-api:${junitVersion}")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")
}

I keep getting these sort of errors each time I try to build:

module ChanceTracker.main reads package org.bouncycastle.tsp.cms from both bctsp.jdk14 and org.bouncycastle.pkix

error: the unnamed module reads package org.xhtmlrenderer.simple from both flying.saucer.pdf and flying.saucer.core

(along with a bunch of others that seems to be very closely related)

running dependencies shows this (showing only the relevent parts here):

+--- org.xhtmlrenderer:flying-saucer-pdf:9.1.22
|    +--- com.lowagie:itext:2.1.7
|    +--- org.bouncycastle:bcmail-jdk14:1.64
|    |    +--- org.bouncycastle:bcprov-jdk14:1.64
|    |    \--- org.bouncycastle:bcpkix-jdk14:1.64
|    |         \--- org.bouncycastle:bcprov-jdk14:1.64
|    +--- org.bouncycastle:bctsp-jdk14:1.46
|    |    +--- org.bouncycastle:bcprov-jdk14:1.46 -> 1.64
|    |    \--- org.bouncycastle:bcmail-jdk14:1.46 -> 1.64 (*)
|    +--- org.bouncycastle:bcprov-jdk14:1.64
|    \--- org.xhtmlrenderer:flying-saucer-core:9.1.22

I rarely experiment with gradle, but I tried different 'excludes' in my dependencies with no luck.


Solution

  • Fixed with

    implementation ('org.xhtmlrenderer:flying-saucer-pdf:9.1.22') {
        exclude group: 'org.bouncycastle'
        exclude group: 'org.xhtmlrenderer'
    }