【发布时间】:2019-05-17 17:27:39
【问题描述】:
我正在尝试将 Java 应用程序部署到面向 OpenJDK 11 的 Heroku。根据Heroku instructions,我已将system.properties 文件添加到我的应用程序的根目录,其中包含以下内容:
java.runtime.version=11
但是,当我部署时,我收到以下 Gradle 错误:
Gradle app detected
-----> Installing JDK 1.8... done
-----> Building Gradle app...
-----> executing ./gradlew jar
Downloading https://services.gradle.org/distributions/gradle-4.10-all.zip
Welcome to Gradle 4.10!
[Gradle highlights]
> Task :compileJava FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileJava'.
> Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'.
如何让 Heroku 检测并使用正确的 Java 版本?
【问题讨论】:
-
看起来您可能使用的是旧版本的 Gradle,但我认为您无法在 Heroku 上自行升级。 Which stack are you using?
-
这是一个独立的 jar,我想作为 HTTP 服务器运行。我正在使用 Gradle 4.10.2。
-
Gradle 直到 11 月 26 日发布的 5.0 版才支持 JDK 11。我认为您必须升级。如果可行,我可以在下面添加正确的答案。
-
很有趣,因为它在本地与 4.10.2 一起工作。我会看看改变是否有什么不同。
-
确保通过运行
./gradlew wrapper --gradle-version 5.0和git add . && git commit升级包装器。这将确保 Heroku 使用您在本地使用的 Gradle 版本。