1

我正在尝试在无法启动的 heroku 上部署一个 dropwizard 应用程序。它在本地使用“gradle run server config.yml”可以正常工作

我正在使用 gradle 进行构建,当我推送到 heroku 时,构建成功。 我的 gradle 阶段任务依赖于 clean and jar(fat jar creation)

我的Procfile有:

网站:java $JAVA_OPTS -jar dropwizard-app/build/libs/dropwizard-app.jar 服务器 dropwizard-app/config.yml

以上失败并显示“无法访问 jarfile dropwizard-app/build/libs/dropwizard-app.jar”

我试过没有成功

网页:java $JAVA_OPTS -jar build/libs/dropwizard-app.jar server config.yml

我也尝试过使用 gradle 命令执行

web: gradle 运行服务器 config.yml

这给出了一个错误 bash: gradle command not found

我的毕业任务如下:

    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 应用程序?

4

2 回答 2

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上的文件

于 2013-07-30T07:09:31.060 回答
0

我写了一个基于 Maven 的部署指南,描述了如何将 Dropwizard 部署到 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
于 2013-07-30T05:35:18.827 回答