Gradle embedded jetty plugin is not stopping automatically

狂风中的少年 提交于 2019-12-06 10:42:40

问题


I am able to run embedded jetty with gradle jettyRunWar command. However, it is not automatically stopped on program termination.

I tried below two code after searching the solution on stackoverflow and other forums. But none works.

1) build.gradle

apply plugin: 'jetty'

task runJetty() {

    jettyStop.stopPort = 8090

    dependsOn jettyRunWar
    finalizedBy jettyStop
}

2) build.gradle

apply plugin: 'jetty'

task runJetty() {

    doFirst {
        jettyRunWar.stopPort = 8090
        jettyRunWar.stopKey = 'stopKey'

        jettyRunWar.daemon = true
        tasks.jettyRunWar.execute()
    }

    doLast {
        jettyStop.stopPort = 8090
        jettyStop.stopKey = 'stopKey'

        tasks.jettyStop.execute()
    }
}

In both cases, on running runJetty task, embedded jetty server starts but did not stop on program termination.

FWIW: I am using Eclipse External Tools Configuration to start and terminate build.gradle. And, using 8080 port in the url to test.


回答1:


In 2) try setting the stopPort to something else, such as 8090.

I think you are actually running jetty on 8080 so that port will be occupied and you are unable to set up a 'stop' listener.

Otherwise you can just put the following in your build.gradle

// need to set the stopPort and stopKey so we are able to stop jetty!
jettyRunWar.stopPort = 8090
jettyRunWar.stopKey = 'stopKey'
jettyStop.stopPort = 8090
jettyStop.stopKey = 'stopKey'

Here is an example that worked for me in intelliJ http://pastebin.com/eTtvCdTb

I run 'jettyRunWar' and 'jettyStop' from the Gradle tasks panel in intelliJ. I've only set the parameters up for jettyRun just in case I run that task by accident, I can then shut the server down.



来源:https://stackoverflow.com/questions/24103802/gradle-embedded-jetty-plugin-is-not-stopping-automatically

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!