在旧版Java webapp中的web.xml文件之间切换
我正在继承一个遗留的代码库,在这个代码库中,除了将文件复制到源代码树之外,没有人真正引入一种处理不同环境的明智方法。我试图在不破坏一切的情况下重新引入一些理智 Tomcat 6.x上使用Spring MVC 3.x的前端webapp的web.xml包含一组servlet,这些servlet代理不同的URL:在旧版Java webapp中的web.xml文件之间切换,java,maven,tomcat,servlets,web.xml,Java,Maven,Tomcat,Servlets,Web.xml,我正在继承一个遗留的代码库,在这个代码库中,除了将文件复制到源代码树之外,没有人真正引入一种处理不同环境的明智方法。我试图在不破坏一切的情况下重新引入一些理智 Tomcat 6.x上使用Spring MVC 3.x的前端webapp的web.xml包含一组servlet,这些servlet代理不同的URL: <servlet> <servlet-name>FooProxy</servlet-name> <servlet-class>
<servlet>
<servlet-name>FooProxy</servlet-name>
<servlet-class>org.mortbay.servlet.ProxyServlet$Transparent</servlet-class>
<init-param>
<param-name>ProxyTo</param-name>
<param-value>http://example.com/foo/</param-value>
</init-param>
</servlet>
也就是说:每个环境文件夹都包含src/main/webapp中通常包含的替代版本。然后,我将使用Maven配置文件插入这些文件夹,默认情况下,生产配置文件处于活动状态
我不知道的是如何配置文件夹的位置,因为Maven文档有时很糟糕。我只知道src/main/webapp是在某处定义的约定。我也不知道tomcat6插件是否会发现存在一个不同的webapp文件夹,是否有可能配置更多的文件夹,以及是否能正常工作。理想情况下,我希望在默认文件夹中保留webapp下的许多文件,这些文件在不同环境之间保持不变,并将其与环境文件夹合并。实现您的要求的更好方法是使用maven profile 您可以拥有用于开发和生产的概要文件,它将定义此代理URL 您可以根据环境使用配置文件 进一步阅读:
我承认我实际上忘记了这些存在,因为我陷入了这个代码库的多层次混乱之中。
<servlet>
<servlet-name>FooProxy</servlet-name>
<servlet-class>org.mortbay.servlet.ProxyServlet$Transparent</servlet-class>
<init-param>
<param-name>ProxyTo</param-name>
<param-value>http://localhost:8080/foo/</param-value>
</init-param>
</servlet>
`--envs
|
|--prod
| |
| `--webapp
| |
| `--web.xml // the original ("production") configuration
|
`--dev
|
`--webapp
|
`--web.xml // the development configuration