java - Heroku 在日志中安装了错误的 jdk (8) 版本,但在终端中安装了良好的 jdk (11) 版本,这导致目标版本 : 11 无效

标签 java spring git maven heroku

我知道这个问题被处理了很多时间,但我遵循了我能找到的每一个答案,我检查了我能想到的一切,但 Heroku 向我发送了混合信号。

我有一个带有 spring-boot 的 Maven 多模块应用程序,

我有一个 system.properties 文件

java.runtime.version=11

我的整个项目都在 java 11 下,我在我的父 pom.xml 中:

<java.version>11</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>

我什至在 Procfile 中添加了正确的 mvn 命令,这通常是不必要的

mvnw spring-boot:run -f ./cycle-api/cycle-api-webservice/pom.xml

我的 java 和 javac 版本是 11

当我这样做时:

git push heroku feature/heroku:master

我在终端中有正确的输出:

remote: Building source:
remote:
remote: -----> Java app detected
remote: -----> Installing JDK 11... done
remote: -----> Executing Maven

但是当我转到我的heroku存储库并单击“打开应用程序”时,我遇到了错误,如果我转到日志,我会看到经典的

[ERROR] ... Fatal error compiling: invalid target release: 11 -> [Help 1]

如果我转到日志的最顶部

-----> Java app detected
-----> Installing JDK 1.8... done
-----> Executing Maven

它怎么可能在同一个版本上向我显示两个不同版本的 JDK?

我什至克隆了heroku git 存储库来检查所有内容是否都已正确推送,是的。 所以我完全不知道什么会导致这种奇怪的行为,所以任何帮助将不胜感激!谢谢!

最佳答案

我终于成功部署了它。 所以 git repo 有问题,我认为 Remote 设置得不好。所以我创建了一个新的 Heroku 存储库并从头开始重新部署。 然后 Procfile 显然不再允许 mvn 命令,所以在那之后我在构建中遇到了 mvn command not found 错误。所以最后我添加到 Procfile 中:

web: java -Dserver.port=$PORT -jar ./cycle-api-webservice/target/cycle-api-webservice-0.0.1-SNAPSHOT.jar

现在它可以工作了。如果我没有添加

,应用程序在部署后会崩溃
-Dserver.port=$PORT

现在一切都OK了!

关于java - Heroku 在日志中安装了错误的 jdk (8) 版本,但在终端中安装了良好的 jdk (11) 版本,这导致目标版本 : 11 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61475761/

相关文章:

java - Weblogic 10.3.6 域向导无法创建 JVM

spring - 使用 spring 社交的长生命周期访问 token

git - 如何检查远程文件中是否存在?

node.js - 由于文件名太长,Git Extensions 正在崩溃。我该如何解决这个问题?

java - Mockito.当用真实对象调用返回null时,必须使用any()

java - QueryDSL 投影和空值

java - 测试Spring onApplicationEvent的简单方法

python - 将 git filter-branch 与 Python 子进程模块一起使用

java - 将用户库添加到 Ant Builder 类路径

java - 使用 Spring Data JPA 捕获 SQL 异常