如何在Heroku上部署java gradle应用程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Heroku上部署java gradle应用程序相关的知识,希望对你有一定的参考价值。

请帮助在Heroku上部署我的应用程序。从Heroku获取错误消息*

“应用程序错误。应用程序中发生错误,无法提供您的页面。请稍后再试。如果您是应用程序所有者,请查看日志以获取详细信息。”

这里从Heroku登录:

2016-07-21T22:11:30.966800+00:00 heroku[slug-compiler]: Slug compilation 
started 2016-07-21T22:11:30.773385+00:00 heroku[api]: Release v8 created by 
zzheads@gmail.com 2016-07-21T22:11:56.184847+00:00 heroku[router]: at=error 
code=H14 desc="No web processes running" method=GET path="/favicon.ico" 
host=zzheads-countries.herokuapp.com request_id=a03c9276-b038-4f9f-8e6d-
5f29f14b441 fwd="5.3.141.153" dyno= connect= service= status=503 bytes=

我的gradle构建文件:

group 'com.zzheads'
version '1.0-SNAPSHOT'

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath  'org.springframework.boot:spring-boot-gradle-plugin:1.3.6.RELEASE'
    }
}

apply plugin: 'java'
apply plugin: 'spring-boot'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-thymeleaf")
}

task stage {
    dependsOn build
}

和我的Proc文件:

web: java -Dserver.port=$PORT $JAVA_OPTS -jar target/countries-1.0-SNAPSHOT.jar
答案

您的构建可能会在build/libs目录中生成可执行的JAR文件。在你的Procfile中尝试这个:

web: java -Dserver.port=$PORT $JAVA_OPTS -jar build/libs/countries-1.0-SNAPSHOT.jar

您可以通过运行在本地测试它:

$ ./gradlew stage
$ heroku local
另一答案

我认为Heroku无法找到你的.jar,因为当它找不到版本属性时,gradle buildpack只使用自己的构建id。因此,在procfile中的文件名下找不到你的.jar。您可以设置以下内容:

jar{
  baseName = 'countries-'
  version = '1.0-SNAPSHOT'
} 

所以Heroku接受了这些变量。请注意,如果您使用的是Spring Boot 2. *,插件会禁用jar任务,并添加一个bootJar任务,然后您必须将这些任务设置为变量。

有了这个,平台应该能够很好地找到你的工件。

此外,运行heroku logs -a <your-app-name-here> -t,您将在调试时获得有关应用程序状态的更多信息

以上是关于如何在Heroku上部署java gradle应用程序的主要内容,如果未能解决你的问题,请参考以下文章

在 Heroku 中部署我的 Gradle (Spring Boot) 应用程序

为 Java Spring Boot Gradle 项目构建 Heroku Procfile

Heroku Spring Boot Gradle App 已部署但 App 崩溃

在 Heroku 上的 Play Framework 1.2 上部署 Java 应用程序,我如何确保它可以处理更高的负载?

在Heroku上部署多个模块java应用程序

Gradle 应用程序无法启动