在gradle中为Heroku创建webapp-runner.jar

时间:2017-05-05 21:37:40

标签: java heroku gradle

我有一个gradle java项目,我试图让它在Heroku中运行。当我把它推到Heroku时,开始会崩溃:

[web.1]: no main manifest attribute, in build/libs/build_5a4de0d99cb0e389e770ac87d36d117e-0.0.1.war
[web.1]: Process exited with status 1
[web.1]: State changed from starting to crashed

然而,直接部署战争将起作用:

heroku war:deploy build/libs/*.war --app ***

...

-----> Packaging application...
   - app: ***
   - including: webapp-runner.jar
   - including: build/libs/***.war

通过谷歌搜索我发现我应该在Procfile中指定webapp-runner,但到目前为止我还没能用gradle制作一个。我怎样才能生成一个,以及Heroku如何做到这一点?

1 个答案:

答案 0 :(得分:0)

您需要build.gradle中的以下内容:

dependencies {
  compile 'com.github.jsimone:webapp-runner:8.5.11.3'
}

task stage() {
    dependsOn clean, war
}
war.mustRunAfter clean

task copyToLib(type: Copy) {
    into "$buildDir/server"
    from(configurations.compile) {
        include "webapp-runner*"
    }
}

stage.dependsOn(copyToLib)

有关完整示例,请参阅kissaten/gradle-webapp-runner