Tomcatプラグイン要らずのWAITT maven plugin


JavaでWebアプリの開発というと、EclipseやIntellijのようなIDEでプラグインを使ってローカルのWebappサーバにデプロイするのが一般的かと思いますが、以下のようなケースで面倒です。

  • 1つのサーバで運用しようとすると、いろんなアプリを開発するときに多数のWebアプリがデプロイされて起動が重くなる。いちいちアンデプロイするのも面倒。
  • 複数のサーバで運用しようとすると、ポートがかぶらないようにするのが面倒。このアプリはポート番号何だっけとなりがち。

そこで、ローカルにTomcatのインストールすることなく、空いてるポートを見つけてEmbed Tomcatをサクッと起動し、そのプロジェクトのwebappを自動デプロイし、ブラウザも起動してくれるMavenのプラグインを作りました。

使い方も簡単です。pom.xmlに以下のプラグインを追加して、

<plugin>
  <groupId>net.unit8.maven.plugins</groupId>
  <artifactId>waitt-maven-plugin</artifactId>
  <version>0.2.0</version>
</plugin>

プラグイン実行するだけです。

% mvn waitt:run

さらに、WAITTプラグインには、自動でCoberturaのInstrumentがされて、カバレッジレポートが自動生成される機能があります。
プロジェクトのソースディレクトリを認識し、その下のクラスだけInstrumentし、レポートを作ります。Instrumentはクラスロード時にオンデマンドでやるので特に使う側が意識することはありません。

http://localhost:8080/coverage (ポート番号は起動環境によって変わります)

にアクセスすると以下のようなレポートが参照できます。

これで打鍵のテストも、コードのどこを実行したかが瞬時にわかるようになりますね!