请帮助在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=
我的渐变构建文件:
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研究了这些变量。请注意,如果您使用的是SpringBoot2.*,插件会禁用jar
任务,并添加一个bootJar
任务,然后您必须在该任务上将这些任务设置为变量。
这样,平台应该能够很好地找到您的工件。
此外,运行heroku logs -a <your-app-name-here> -t
,您将在调试时获得有关应用程序状态的更多信息