пакет org.xmlpull.mxp1_serializer не существует при попытке использовать jlink

У меня проблемы с созданием модульного изображения с помощью плагина jlink gradle. В моем проекте используются Xstream и JavaFX под управлением jdk15. Поскольку создание файла .jar, содержащего зависимость javaFX, оказалось проблематичным, я попытался использовать вместо этого jlink, как предлагается здесь (1 ). Когда я попытался запустить задачу jlink, появились похожие проблемы (2). Даже после того, как я изменил /METFA-INF/services/org.xmlpull.v1.XmlPullParserFactory в xpp3_min-1.1.4c.jar на это:

    org.xmlpull.mxp1.MXParser
    org.xmlpull.mxp1_serializer.MXSerializer

при запуске задачи jlink появились новые проблемы:

\build\jlinkbase\tmpjars\shady.entertainment.merged.module\module-info.java:41: error: package org.xmlpull.mxp1_serializer does not exist
                org.xmlpull.mxp1_serializer.MXSerializer;

Эта последняя строка создает ошибку в module-info.java:

...
    requires java.xml;
    requires java.desktop;
    requires jdk.unsupported;
    provides org.xmlpull.v1.XmlPullParserFactory with org.xmlpull.mxp1.MXParser,
                org.xmlpull.mxp1_serializer.MXSerializer;
}

Мой gradle.build выглядит так:

plugins {
    id 'java'
    id 'application'
    id 'org.javamodularity.moduleplugin' version '1.5.0'
    id 'org.openjfx.javafxplugin' version '0.0.9'
    id 'org.beryx.jlink' version '2.12.0'
}

group 'shady.entertainment'
version '1'

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {
    // jsoup HTML parser library @ https://jsoup.org/
    implementation 'org.jsoup:jsoup:1.13.1'
    implementation 'com.thoughtworks.xstream:xstream:1.4.15'
    implementation 'org.jetbrains:annotations:20.1.0'
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
}


test {
    useJUnitPlatform()
}

jar {
    manifest {
        attributes 'Main-Class': 'com.fiszki.plastyka.MainClassWrapper'
    }
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
}

jlink {
    options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
    launcher {
        name = 'FiszkiPlastyka'
    }
}



javafx {
    version = "15.0.1"
    modules = [ 'javafx.controls','javafx.fxml']
}

mainClassName = 'com.fiszki.plastyka.MainClassWrapper'

На данный момент мне кажется, что я искал большую часть Интернета в поисках причины этой проблемы и возможного решения. Это проблема с XStream, xmlpull или любой другой зависимостью? И что можно сделать, чтобы решить эту проблему?


person koxx4    schedule 09.03.2021    source источник