微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试使用 jlink 时包 org.xmlpull.mxp1_serializer 不存在

如何解决尝试使用 jlink 时包 org.xmlpull.mxp1_serializer 不存在

我在使用 jlink gradle 插件制作模块化图像时遇到问题。 我的项目使用运行 jdk15 的 Xstream 和 JavaFX。由于制作包含 javaFX 依赖项的 .jar 文件被证明是有问题的,因此我尝试按照此处的建议 (1) 使用 jlink。当我尝试运行“jlink”任务时,出现了类似的问题 (2)。即使在我改变之后 /METFA-INF/services/org.xmlpull.v1.XmlPullParserFactoryxpp3_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 或任何其他依赖项的问题吗?可以做些什么来解决这个问题?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。