首页 文章

运行部署在heroku上的gradle dropwizard应用程序时无法访问jar

提问于
浏览
1

我正在尝试在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 回答

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

  • 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
    

相关问题