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

t4t*_*t4t 1 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)}
        }
    }
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?如何启动我的dropwizard应用程序?

t4t*_*t4t 7

搞定了.

如上所述,我试图执行dropwizard-app.jar但是在heroku上创建的jar没有提到名称,它使用默认存档名称以build-'some autogenerated value'开头.

所以我在我的项目中添加了settings.gradle:

 rootProject.name = 'dropwizard-app' 
Run Code Online (Sandbox Code Playgroud)

现在创建的jar是dropwizard-app-1.0.jar

因为我在build.gradle中将version属性设置为1.0

我曾经heroku run bash 检查过heroku上的文件