在heroku上部署而不保留gradlew文件

时间:2018-09-02 17:38:39

标签: java spring-boot gradle heroku

我正在用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

1 个答案:

答案 0 :(得分:0)

在没有gradlew文件的情况下,Heroku Gradle buildpack不支持使用Gradle版本>2.x。这与official Gradle recommendation一致。

但是,您可以派生Heroku Gradle buildpack并编辑default wrapper, which installs Gradle。然后,您可以在Heroku应用程序上将fork设置为自定义buildpack。