我正在使用Gradle构建一个演示Spring Boot应用程序并使用Heroku来托管应用程序。我已经预装了Gradle 4.8,所以我没有在项目目录中保存gradlew
文件,并且应用程序在本地运行正常,但是当我使用git push heroku master
在heroku上部署它时。显示以下警告的日志:
remote: -----> Installing Gradle Wrapper...
remote: WARNING: Your application does not have it's own gradlew file.
remote: We'll install one for you, but this is a deprecated feature and
remote: in the future may not be supported.
remote: -----> Building Gradle app...
remote: -----> executing ./gradlew build -x test
显示Gradle版本错误后,构建失败:
remote: * What went wrong:
remote: A problem occurred evaluating root project 'xxx'.
remote: > Spring Boot plugin requires Gradle 4.0 or later. The current version is Gradle 2.0
意味着它使用默认的gradle
文件和安装2.0来部署应用程序。
现在我的问题是,我如何强制Heroku部署过程使用预先安装的Gradle版本而不保留项目目录中的gradlew
而不安装它的默认弃用gradlew
?
Heroku Gradle buildpack不支持在没有gradlew
文件的情况下使用Gradle版本> 2.x.这与official Gradle recommendation一致。
但是,你可以分叉Heroku Gradle buildpack并编辑default wrapper, which installs Gradle。然后,您可以将fork设置为Heroku应用程序上的自定义buildpack。