内部ロジックは同じなんだけど、対象ユーザが異なるアプリケーションを作らないといけないという話が持ち上がった。
わざわざ二つプロジェクト立ち上げてもコードが共有できないと死ねるので、web.xmlに思いっきり二つのプロジェクトをつっこんでみた。
<!-- 一つ目 --> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> .... <load-on-startup>4</load-on-startup> </servlet> <!-- 二つ目 --> <servlet> <servlet-name>action-unko</servlet-name> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config-unko.xml</param-value> </init-param> .... <load-on-startup>4</load-on-startup> </servlet> .... <!-- mapping --> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>/system/do/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>action-unko</servlet-name> <url-pattern>/system/unko/*</url-pattern> </servlet-mapping>
テストの時は同時に起動させて、リリースの際はweb.xmlを二つ作っておいてbuild.xmlでどちらかを参照するか分けるようにすればリリース作業も楽チン。