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

时间:2013-07-29 12:56:13

标签: heroku dropwizard

我正在尝试在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应用程序?

2 个答案:

答案 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