Seasar2.4とMaven、開発環境、本番環境、そしてenv.txt
Seasar2.4からenv.txtに環境名を書くことによってそれぞれの環境別の制御をおこなうことが出来るようになっているらしい。
S2Container
HOT reloadingもここ(env.txt)に書いている値を見て有効か無効か判断しているらしい。(ちなみにenv.txt内に「ct」と書いている場合HOT reloadingがきく)そして、このファイルがない場合はproductionモードで動作する。開発環境ではctで使い、本番環境ではこれを削除しておけばいい。
今回、Mavenを使ってパッケージング(war)しているんだけど、その時このenv.txtを削除するように設定してやれば一番簡単にいきそう。ってことで調べるとすぐ出てきた。
pom.xmlにent.txtを削除する設定をいれてやるだけ。これで、packageを行うとwarファイルからきれいにenv.txtが消えてました。
(以下は上記URLより引用)
<plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <phase>process-resources</phase> <configuration> <tasks> <delete file="${project.build.outputDirectory}/env.txt" /> </tasks> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin>
ちなみに「process-resources」フェーズでやるって設定があるけど、フェーズには以下のようなものがあるらしい。パッケージする前だったらどこでもよかったりすんじゃろうかー。prepare-packageとか、それっぽいね。
Maven – Introduction to the Build Lifecycle