如何在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 应用程序,我如何确保它可以处理更高的负载?