在使用Heroku部署JAVA SpringBoot应用时遇到的问题。
在使用Heroku部署JAVA SpringBoot应用时遇到的问题。
我正在尝试使用Intellij中的Spring-boot和Maven开始项目。
请帮我,我遇到了以下错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project spring-rest: Fatal error compiling: invalid flag: --release -> [Help 1]
[ERROR]
[ERROR] 要查看错误的完整堆栈跟踪,请使用 -e 开关重新运行 Maven。
[ERROR] 使用 -X 开关重新运行 Maven 以启用完整的调试日志记录。
[ERROR]
[ERROR] 有关错误和可能解决方案的更多信息,请阅读以下文章:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
进程以退出代码1结束
我的pom.xml文件如下:
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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
在部署使用Heroku的JAVA SpringBoot应用程序时出现问题的原因是系统上运行的JDK版本。根据maven-compiler-plugin的文档,自1.9版本开始支持release标志,因此如果您使用的是较早(1.8及以下)版本的JDK,则必须将其注释或从POM中删除。
在这里检查maven-compiler-plugin的发布标签的Maven文档。
我遇到了这个问题,我忘记将JAVA_HOME环境变量更改为指向我的Java 11 JDK。(export JAVA_HOME=$(/usr/libexec/java_home -v11)
)
原因:系统上运行的JDK版本不支持maven-compiler-plugin的release标志。
解决方法:将POM文件中的release标志注释或删除,并将JAVA_HOME环境变量更改为指向Java 11 JDK。
代码示例:
export JAVA_HOME=$(/usr/libexec/java_home -v11) org.apache.maven.plugins maven-compiler-plugin 3.8.1