你当然可以使用 tomcat 插件。我的设置阻止我使用/修改开箱即用的战争和 tomcat 选项。
我个人喜欢以下风味(从我的 build.gradle 复制)。
tomcat_home='tomcat_location'
tomcat_bin=tomcat_home + '/bin'
tomcat_start=tomcat_bin + '/startup.sh'
tomcat_stop=tomcat_bin + '/shutdown.sh'
tomcat_webapps = tomcat_home + '/webapps'
task tom << {
if (project.hasProperty('start')) {
startTom()
} else if (project.hasProperty('stop')) {
stopTom()
} else if (project.hasProperty('deployNstart')) {
stopTom()
webappsCopy()
startTom()
} else {
throw new RuntimeException('unrecognized option')
}
}
def stopTom() {
executeCmd(tomcat_stop)
}
def startTom() {
executeCmd(tomcat_start)
}
def executeCmd(command) {
proc = command.execute()
proc.waitFor()
}
def webappsCopy() {
copy {
from 'war file location' // could be exploded or war itself
into tomcat_webapps
}
}
-- 您从命令行调用包含在“tom”任务中的各种选项 --
$ gradle tom -Pstart
$ gradle tom -Pstop
$ gradle tom -PdeployNstart
随着我添加更多与 Tomcat 相关的命令/选项,这可能会进一步增长。几点建议:
- 将位置等移动到 gradle.properties 以便它可以在不同的环境中工作。
- 轮询您的 tomcat 服务器端口以微调选项和消息。
- 移至可以重用的插件/任务代码。
这个限量版现在对我有用:-)