Gradle で Tomcat をかんたんに起動停止する

東京では「G*ワークショップZ Mar 2013 - 日本Grails/Groovyユーザーグループ」が本日開催されて Gradle が盛り上がってます。うらやましい限りです。

Gradle から Tomcat を操作することができます

Tomcat にアプリケーション(war)をデプロイする
Tomcat のアプリケーションを起動する
Tomcat のアプリケーションを停止する
Tomcat のアプリケーションをアンデプロイする

こういったことは Ant タスクを Gradle から実行することで Gradle で実現できました。
次のサイトを参考にするといいです。

Gradleを使ってTomcatサーバーへのデプロイ作業を自動化 - ゲンゾウ用ポストイット-new

それ以前に Tomcat 自体を起動、停止したい

そもそも Tomcat 自体を起動、停止するにはどうしたらいいのか?

TOMCAT_HOME/bin/bootstrap.jar を使うと Tomcat を起動停止できるみたいですが、
なんだかうまくいきませんでした。

Groovy には execute メソッドがありました

「難しく考えずに、startup.sh を直接たたけばいいんだ」
ということに気づいたので、細かいことは考えずに。

Groovy には、String クラスに execute メソッドがあって
コマンドライン文字列をそのまま実行できます。簡単です。

ということで…

def tomcatHome = "/Applications/apache-tomcat-7.0.xx"

task startupTomcat << {
    "${tomcatHome}/bin/startup.sh".execute()
}

task shutdownTomcat << {
    "${tomcatHome}/bin/shutdown.sh".execute()
}

すでに起動してたらどうするんだ?
とか、そういう例外処理はまあ置いておいて。

gradle startupTomcat

という感じで Tomcat を起動できます。

いい方法を思いつくまではこれで行きます。