JitPack构建Maven库报invalid target release编译错误如何解决
问题根因
- 你当前引入的
maven-compiler-plugin版本为3.2,该版本发布时间较早,最高仅支持Java 8作为编译目标,无法识别Java 9及以上版本的编译参数,是触发该报错的核心原因。 - JitPack云端构建环境默认使用OpenJDK 8作为运行环境,未显式指定JDK版本时,构建环境不会预装高版本JDK,和你本地IDE预装了对应JDK的环境不一致,因此本地可以正常构建,云端构建失败。
- 若你调整编译版本到Java 7/8后依然报相同错误,大概率是修改后的pom.xml未提交到Git远程仓库对应tag的提交点,或是JitPack缓存了旧的构建结果。
修复方案
按以下步骤操作即可解决:
- 升级maven编译插件版本
将pom.xml中原有maven-compiler-plugin的配置替换为如下内容,插件版本推荐使用3.11.0稳定版(支持Java 8~21所有版本),使用release参数替代旧的source/target配置避免交叉编译问题:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <release>14</release> <!-- 填写项目实际使用的Java版本,如使用Java 17则改为17,如需兼容Java 8运行则改为8 --> </configuration> </plugin>
注意:你引入的mysql:mysql-connector-java:8.0.29依赖最低要求Java 8运行,编译版本不能低于8。
- 指定JitPack构建JDK版本
在项目根目录下新建名为jitpack.yml的配置文件,写入和上述编译版本匹配的JDK配置,例如使用Java 14时配置如下:
jdk: - openjdk14
若使用Java 17则将值改为openjdk17即可,JitPack原生支持OpenJDK 8到21的所有正式版本。
- 重新触发构建
- 将pom.xml和jitpack.yml的修改提交到Git远程仓库,打新的版本tag
- 进入JitPack对应项目页面,找到之前构建失败的版本,点击清除构建缓存,再触发新一次构建即可。
内容的提问来源于stack exchange,提问作者Huon Swales
相关产品推荐
相关产品推荐

