我正在尝试在heroku上部署一个无法启动的dropwizard应用程序 . 它使用“gradle run server config.yml”在本地工作正常
我正在使用gradle进行构建,当我推送到heroku时 build is successful. 我的gradle阶段任务依赖于清洁和jar(胖 jar 创建)
我的 Procfile 有:
web:java $ JAVA_OPTS -jar dropwizard-app / build / libs / dropwizard-app.jar server dropwizard-app / config.yml
The above fails with "Unable to access 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 command not found
我的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应用程序?
2 回答
搞定了 .
如上所述,我试图执行dropwizard-app.jar但是在heroku上创建的jar不是提到的名称,它使用以build- 'some autogenerated value' .jar开头的默认存档名称
所以我在我的项目中添加了 settings.gradle :
现在创建的jar是dropwizard-app-1.0.jar
因为我在build.gradle中将version属性设置为1.0
我使用
heroku run bash
检查heroku上的文件我写了一篇基于Maven的部署指南,描述了how to deploy a Dropwizard to Heroku,可能会提供一些帮助 . 虽然它不包括gradle,但它确实指出了Heroku环境中的一些常见问题 .
例如,您的Procfile应如下所示: