我可以使用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端口进行测试。
答案 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设置了参数,以防我偶然运行该任务,然后我可以关闭服务器。