You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Maven项目中使用badass-runtime-plugin生成JavaFX运行时镜像?

非模块化JavaFX Maven项目生成运行时镜像的解决方案

首先明确:badass-runtime-plugin是Gradle专属插件,Maven项目无法直接使用它。不过你有两个可行的方向来实现需求:

方案一:将项目迁移到Gradle

这是最贴合你原本需求的方式——直接使用badass-runtime-plugin。Gradle对JavaFX的支持很成熟,你可以:

  • 引入Gradle的JavaFX插件,快速配置JavaFX依赖
  • 按照插件文档配置badass-runtime-plugin,它原生支持非模块化应用打包运行时镜像,不需要额外处理模块声明

方案二:使用Maven版的替代插件(无需换构建工具)

Beryx团队提供了对应Maven的插件badass-jlink-maven-plugin,功能和Gradle版的badass-runtime-plugin类似,支持非模块化JavaFX应用生成运行时镜像。配置步骤如下:

  1. 在你的pom.xml中添加插件配置:
<build>
    <plugins>
        <plugin>
            <groupId>org.beryx.jlink</groupId>
            <artifactId>badass-jlink-maven-plugin</artifactId>
            <version>2.28.0</version> <!-- 使用最新稳定版本 -->
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>jlink</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>你的主类全限定名</mainClass>
                <nonModular>true</nonModular> <!-- 标记当前为非模块化应用 -->
                <jlinkImageName>自定义镜像名称</jlinkImageName>
                <jlinkZipName>自定义镜像压缩包名称</jlinkZipName>
                <!-- 根据你的JavaFX依赖添加对应模块 -->
                <addModules>
                    <module>javafx.controls</module>
                    <module>javafx.fxml</module>
                </addModules>
            </configuration>
        </plugin>
        <!-- 配合收集依赖jar包,供插件处理模块依赖 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>3.6.1</version>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/dependency-jars</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
  1. 执行Maven命令:mvn package,插件会自动处理非模块化应用的模块依赖,生成包含JavaFX运行时的镜像包。

内容的提问来源于stack exchange,提问作者Nessarose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 22:36:06