【发布时间】:2014-06-08 07:03:30
【问题描述】:
我可以使用 gradle jettyRunWar 命令运行嵌入式码头。但是,它不会在程序终止时自动停止。
在 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 任务时,嵌入式码头服务器会启动,但不会在程序终止时停止。
FWIW:我正在使用 Eclipse 外部工具配置来启动和终止 build.gradle。并且,在url中使用8080端口进行测试。
【问题讨论】:
-
不建议在任务上调用
execute()方法。如果要实现上面的工作流程,请尝试使用dependsOn和finalizedBy。
标签: gradle embedded-jetty build.gradle