部署Spring Boot应用至Heroku时遭遇"invalid flag: --release"错误求助
解决Heroku部署Maven项目时的
invalid flag: --release编译错误 以下是针对该问题的具体解决方法:
强制指定Heroku使用的JDK版本
在项目根目录创建system.properties文件,添加对应版本的配置(以Java 17为例):java.runtime.version=17该文件会约束Heroku构建环境使用指定版本的JDK,避免默认环境使用不支持
--release参数的旧版本JDK(如JDK 8及更早版本不支持该参数)。显式配置Maven编译器插件
在pom.xml的<build><plugins>节点下添加maven-compiler-plugin的明确配置,确保编译参数与目标JDK兼容:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>17</source> <target>17</target> <release>17</release> </configuration> </plugin>虽然Spring Boot父项目会默认配置该插件,但显式声明可以避免版本或参数匹配问题,确保
--release参数与目标JDK版本兼容。更新Heroku Java Buildpack
执行以下命令确保使用官方最新的Java Buildpack:heroku buildpacks:set heroku/java旧版本的Buildpack可能存在JDK版本适配问题,更新后能获得更稳定的构建环境。
清除Heroku构建缓存
缓存残留可能导致旧的JDK或依赖影响构建,执行命令清除缓存后重新部署:heroku builds:cache:purge git push heroku master:main确认部署分支的正确性
Heroku当前默认主分支为main,若你本地使用master分支部署,需使用正确的推送命令:git push heroku master:main避免因分支不匹配导致的重复构建警告,确保构建流程正常执行。
内容的提问来源于stack exchange,提问作者BullyWiiPlaza
相关产品推荐
相关产品推荐

