我正在尝试在heroku上部署一个无法启动的dropwizard应用程序。 它使用“gradle run server config.yml”
在本地工作正常我正在使用gradle进行构建,当我推送到heroku时,构建成功。 我的gradle阶段任务取决于清洁和jar(胖罐创建)
我的 Procfile 有:
web:java $ JAVA_OPTS -jar dropwizard-app / build / libs / dropwizard-app.jar server dropwizard-app / config.yml
以上失败,“无法访问jarfile dropwizard-app / build / libs / dropwizard-app.jar”
我尝试使用
失败了web:java $ JAVA_OPTS -jar build / libs / dropwizard-app.jar server config.yml
我也尝试使用gradle命令执行
web:gradle run server config.yml
这会出错 bash:找不到gradle命令
我的gradle任务如下:
task stage(dependsOn: ['clean', 'jar'])
run {
args 'server', 'config.yml'
}
jar {
manifest {
attributes 'Title': 'dropwizard-app', 'Version': version,'Main-Class': mainClassName
}
archiveName 'dropwizard-app'
dependsOn configurations.runtime
from {
configurations.compile.collect {it.isDirectory()? it: zipTree(it)}
}
}
我错过了什么吗? 如何启动我的dropwizard应用程序?
答案 0 :(得分:7)
搞定了。
如上所述,我试图执行dropwizard-app.jar 但是在heroku上创建的jar没有提到名称,它采用了默认的存档名称 以 build-'some autogenerated value'开头.jar
所以我在项目中添加了 settings.gradle :
rootProject.name = 'dropwizard-app'
现在创建的jar是dropwizard-app-1.0.jar
因为我在build.gradle中将version属性设置为1.0
我使用了heroku run bash
检查heroku上的文件
答案 1 :(得分:0)
我写了一篇基于Maven的部署指南,描述how to deploy a Dropwizard to Heroku可能会提供一些帮助。虽然它不包括gradle,但它确实指出了Heroku环境中的一些常见问题。
例如,您的Procfile应如下所示:
web java $JAVA_OPTS -Ddw.http.port=$PORT -Ddw.http.adminPort=$PORT -jar path/to/dw/module/target/example-develop-SNAPSHOT.jar server path/to/dw/module/config-heroku.yml