Gradle嵌入式jetty插件不会自动停止

时间:2014-06-08 07:03:30

标签: gradle embedded-jetty build.gradle

我可以使用gradle jettyRunWar命令运行嵌入式jetty。但是,它不会在程序终止时自动停止。

在stackoverflow和其他论坛上搜索解决方案后,我在下面尝试了两个代码。但都没有效果。

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()
    }
}

在这两种情况下,在运行runJetty任务时,嵌入式jetty服务器启动但在程序终止时没有停止。

FWIW:我正在使用Eclipse外部工具配置来启动和终止build.gradle。并且,使用网址中的8080端口进行测试。

1 个答案:

答案 0 :(得分:3)

在2)尝试将stopPort设置为其他内容,例如8090.

我认为你实际上是在8080上运行码头,因此港口将被占用,你无法设置“停止”。监听器。

否则,您只需将以下内容放入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'

这是一个在intelliJ中为我工作的例子 http://pastebin.com/eTtvCdTb

我跑步' jettyRunWar'和' jettyStop'来自intelliJ的Gradle任务面板。我只为jettyRun设置了参数,以防我偶然运行该任务,然后我可以关闭服务器。