JavaFX Gradle执行jpackageImage报错:1.0-SNAPSHOT版本包含无效组件
问题根因
报错是OpenJDK自带的jpackage工具的版本号校验规则导致,和badass-jlink插件、JDK版本无关。jpackage要求应用版本必须为纯数字点分格式(如1.0、1.0.1),不允许出现-、字母等非数字/点的字符,你配置的全局版本1.0-SNAPSHOT中的-SNAPSHOT属于非法内容,触发校验失败。
解决方案
方案1:修改全局版本号(最简便)
直接修改build.gradle中的全局版本配置,改为符合规则的点分数字版本即可:
// 替换原 version '1.0-SNAPSHOT' version '1.0.0'
方案2:单独为jpackage指定版本(保留SNAPSHOT全局版本)
如果项目需要保留1.0-SNAPSHOT作为全局版本标识,可在jlink配置块中单独给jpackage指定合法版本号,不使用全局version:
jlink { options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages'] launcher { name = 'Karrty' } // 新增jpackage独立配置 jpackage { appVersion = "1.0.0" // 若要保留SNAPSHOT标识,可放在描述等其他字段: // description = "1.0-SNAPSHOT 开发测试版本" } }
修改后重新执行jpackageImage任务即可正常打包。
内容的提问来源于stack exchange,提问作者Youssef Idraiss
相关产品推荐
相关产品推荐

