小编Dmi*_*riy的帖子

Maven-shade-plugin 检测到某些类文件存在于两个或多个 JAR 中

我正在尝试使用maven-shade-plugin但收到警告:

javafx-controls-18.0.1-win.jar、javafx-graphics-18.0.1-win.jar、javafx-media-18.0.1-win.jar、javafx-web-18.0.1-win.jar 定义 1 个重叠资源:

  • META-INF/substrate/config/resourcebundles javafx-graphics-18.0.1-win.jar、javafx-media-18.0.1-win.jar、javafx-web-18.0.1-win.jar 定义 2 个重叠资源:
  • META-INF/substrate/config/jniconfig-x86_64-linux.json
  • META-INF/substrate/config/reflectionconfig-x86_64-linux.json javafx-base-18.0.1-win.jar,javafx-controls-18.0.1-win.jar,javafx-graphics-18.0.1-win.jar定义 1 个重叠资源:
  • META-INF/substrate/config/reflectionconfig.json maven-shade-plugin 检测到某些类文件存在于两个或多个 JAR 中。发生这种情况时,只会将该类的一个版本复制到 uber jar 中。通常这没有什么害处,您可以跳过这些警告,否则尝试根据 mvn dependency:tree -Ddetail=true 和上述输出手动排除工件。请参阅 https://maven.apache.org/plugins/maven-shade-plugin/

此警告可能会发生变化(可能来自我的行为)。

我试图用这个来修复它,但它不起作用:

<filters>
    <filter>
        <artifact>*:*</artifact>
        <excludes>
           <exclude>META-INF/*</exclude>
        </excludes>
    </filter>
</filters>
Run Code Online (Sandbox Code Playgroud)

由于 Shadow-jar 由于错误而无法启动,我开始尝试修复此警告:

错误:缺少 JavaFX 运行时组件,并且需要运行该应用程序

请告诉我如何修复此错误并运行shade-jar?

我的pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.test</groupId>
    <artifactId>TEST</artifactId>
    <version>1.0</version>
    <name>TEST</name>

    <packaging>jar</packaging>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <junit.version>5.8.2</junit.version>
        <javafx.version>18.0.1</javafx.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>${javafx.version}</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-web</artifactId>
            <version>${javafx.version}</version>
        </dependency>
        <dependency> …
Run Code Online (Sandbox Code Playgroud)

java javafx maven maven-shade-plugin

5
推荐指数
1
解决办法
2545
查看次数

如何创建JRE来运行jar程序?

我有一个可执行文件 jar,可以使用java -jar app.jar运行,但SDK 为 326MB。这是很多。

jlink 可以创建JRE,但我无法使用jlink,因为我有一个非模块化应用程序

您能告诉我如何创建 JRE 吗?

java executable-jar jlink maven

3
推荐指数
1
解决办法
580
查看次数

标签 统计

java ×2

maven ×2

executable-jar ×1

javafx ×1

jlink ×1

maven-shade-plugin ×1