[ソフト] Velocity のキャッシュ Know How

あるWebアプリの開発で Velocity を使っています。 このサイトはデザイン重視のコンシューマー向けで、JSP ではデザイナーとの協業が難しく、 Velocity を使いました( Mayaa は時期的に間に合わなかったので・・・)。

さて、Velocity (VelocityViewServletなのかな?) は高速化の為に展開した情報をキャッシュしています。
その更新ルールですが経験的には以下のようになってるようです (ソース、ドキュメントから得た情報ではないので正確ではないかもしれません)。

  1. Velocity ファイルは、ファイルサイズが変わった時にキャッシュがクリアされるようです。コンテンツの文字を同じ長さで置換えた場合はキャッシュされたままなので、無駄な空白を加えたりしてキャッシュをクリアすると良いでしょう。
  2. マクロ定義は一回使うとキャッシュされ、なかなかクリアされません ^^; マクロ定義を換えたい場合は、違うマクロ名にして (元が macro1 なら macro1a に換えて) テストすると上手く行きます。
  3. マクロを コンテンツではなく、共通のマクロファイル (velocity.propertiesにファイル名を定義します)に書いた場合は起動時にキャッシュされてしまうので、デバック時は共通マクロファイルではなく、コンテンツファイルにマクロを記述し上のようにマクロ名を換えながらデバックし、完成してから共通マクロファイルに移すのが良さそうです。