開発と本番で設定ファイル自体(web.xmlなど)はわけると思うのですが、以前はわからず、開発のものと本番のものを手動でわけていました。
Javaでどうやってやるかを調べたところ、pomにかなり便利な記述方法がありましたので紹介させていただきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<plugins> ・・・・・ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.3</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> <webXml>${webxml.path}</webXml>←ここでweb.xmlのパスを変数化する </configuration> </plugin> </plugins> </build> <!--環境ごとにかわる設定ファイルを切り替えます。--> <profiles> <profile> <id>local</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <webxml.path>src/main/webapp/WEB-INF/web.xml</webxml.path>←変数化しておいたパラメーターにこのプロパティを入れる(開発) </properties> </profile> <profile> <id>remote</id> <properties> <webxml.path>src/remote/webapp/WEB-INF/web.xml</webxml.path>←本番 </properties> </profile> </profiles> |
profilesというタグを使いprofileをここに設定することで使い分けられるようです。
本番用のディレクトリを作り、その中にweb.xmlだけ作ればOKです。
ちなみにローカルの環境はnetbeansで「プロジェクトファイル」を右クリックし、「構成」を選べば、profileのidがでてきますのでそのまま選択してあげればOKです。
一度決定してあげればあとは自動です。
また本番の反映に関してはmavenでタスクを実行するときに「mvn package -P remote_dev」などと引数を与えてあげると本番用の設定ファイルでデプロイされます。
参考リンク
設定ファイルの書き換え
maven-war-pluginで環境ごとの設定ファイルを管理してみた
maven-war-pluginで設定ファイルとweb.xmlを書き換えたWarを作ってみる
web.xmlの記述法など
http://www.javaroad.jp/servletjsp/sj_servlet5.htm