もちろん、Tomcat プラグインを使用することもできます。私のセットアップでは、すぐに使用できる war と 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 サーバー ポートをポーリングして、オプションとメッセージを微調整します。
- 再利用できるプラグイン/タスク コードに移動します。
この限定バージョンは今私のために働いています:-)