如何阻止从Eclipse Gradle插件启动的Tomcat服务器?

时间:2013-12-26 20:14:43

标签: java eclipse spring tomcat gradle

我正在浏览http://spring.io关于RESTful网络服务的教程 我希望能够从Eclipse启动我的Web项目作为Gradle构建( Run As => Gradle Build ... ),然后在我完成测试时停止它。登记/> 我知道如何启动它,但我不能在不退出Eclipse(Spring Tool Suite)的情况下停止它。

任何建议?

3 个答案:

答案 0 :(得分:3)

借用Gradle Tomcat plugin文档,只需执行此操作:

ext {
    tomcatStopPort = 8081
    tomcatStopKey = 'stopKey'
}

task doTomcatRun(type: org.gradle.api.plugins.tomcat.TomcatRun) {
    stopPort = tomcatStopPort
    stopKey = tomcatStopKey
    daemon = true
}

task doTomcatStop(type: org.gradle.api.plugins.tomcat.TomcatStop) {
    stopPort = tomcatStopPort
    stopKey = tomcatStopKey
}

task someTask(type: SomeGradleTaskType) {
    //do stuff
    dependsOn doTomcatRun
    finalizedBy doTomcatStop
}

在此示例中,someTask是您执行的Gradle任务,在任务运行之前启动Tomcat,并在任务完成后停止Tomcat。

如果您更喜欢手动操作,那么只需配置然后通过Eclipse运行tomcatStop任务:

tomcatStop {
        stopPort = 8090
        stopKey = 'foo'
}

答案 1 :(得分:0)

请允许我谦卑地建议您使用gradle“jetty”插件。考虑:

a)它支持jettyRun,jettyRunWar和jettyStop任务。

b)它使用jetty 6,因此与servlet-api 2.5兼容(tomcat的等效版本为6)。

如果你对旧的jetty / servlet-api不满意,请随意尝试“gretty”插件(我写的) - 它支持jetty 7/8/9和servlet-api 2.5 / 3.0.1 / 3.1。 0。 Gretty插件可在maven central和github上使用:https://github.com/akhikhl/gretty。该文档也在github上提供。

答案 2 :(得分:0)

build.gradle

[tomcatRun, tomcatRunWar, tomcatStop]*.stopPort = 8081
[tomcatRun, tomcatRunWar, tomcatStop]*.stopKey = 'stopKey'