如何在 heroku 部署中显示 gradle 堆栈跟踪?

How to show gradle stacktrace on heroku deployment?

我正在尝试将 gradle java 应用程序部署到 heroku(基于 jhipster)。我可以使用 "heroku local" 在本地构建和 运行 它,但是当我尝试远程部署它时,我在尝试构建应用程序时遇到错误(在执行 ./gradlew 阶段) .错误是:

...
remote:        Download https://oss.sonatype.org/content/repositories/releases/org/mapstruct/mapstruct-processor/1.0.0.CR1/mapstruct-processor-1.0.0.CR1.pom
remote:        Download https://oss.sonatype.org/content/repositories/releases/org/mapstruct/mapstruct-processor/1.0.0.CR1/mapstruct-processor-1.0.0.CR1.jar
remote:        :bower FAILED

remote:        FAILURE: Build failed with an exception.
remote:        
remote:        * What went wrong:
remote:        Execution failed for task ':bower'.
remote:        > A problem occurred starting process 'command 'bower''
remote:        
remote:        * Try:
remote:        Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
remote:        
remote:        BUILD FAILED

我想如果我能看到堆栈跟踪,它可能会澄清问题,但我不知道如何将命令行参数 (--stacktrace) 传递给 gradle 在 heroku 远程上构建服务器。我会用 (heroku 运行 bash) 手动尝试,但我不能,因为这是第一次部署,dyno 上还没有代码。

此错误表示 bower 命令不可用。为了将其添加到构建中,您需要通过 运行 执行以下命令将 Node.js buildpack 添加到您的应用程序:

$ heroku buildpacks:clear
$ heroku buildpacks:add heroku/nodejs
$ heroku buildpacks:add heroku/gradle

这将首先 运行 Node.js 构建包(在您 git push 之后),这将在您的 package.json 中安装节点和任何依赖项。然后它将 运行 Gradle buildpack。

您可能还需要配置其他一些东西,我有一个 blog post on doing this with Maven。但总的来说,相同的原则适用于 Gradle.

您还可以使用 heroku deploy plugin.

部署到 Heroku
./gradlew clean -Pprod bootRepackage -x test
heroku deploy:jar --jar build/libs/*.war