我正在继承遗留代码库的过程中,没有人真正介绍过处理不同环境的理智方式,而不是将文件复制到源代码树中。"我试图在不破坏一切的情况下重新引入一些理智。
前端webapp的web.xml
(在Tomcat 6.x上使用Spring MVC 3.x)包含一堆代理不同URL的servlet:
<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>
对于本地开发,必须用代理某种开发服务器的servlet替换它:
<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>
实现这一目标的最佳方式是:
mvn tomcat6:run
我目前的想法是将web.xml的版本放入非标准源文件夹,例如:
`--envs
|
|--prod
| |
| `--webapp
| |
| `--web.xml // the original ("production") configuration
|
`--dev
|
`--webapp
|
`--web.xml // the development configuration
那就是:每个环境&#34;文件夹包含src/main/webapp
中通常包含的替代版本。然后,我使用Maven配置文件插入这些文件夹,默认情况下生产一个文件夹。
我不知道甚至是如何配置该文件夹的位置,因为Maven文档有时很糟糕。我所知道的是src/main/webapp
是在某处定义的约定。我也不知道tomcat6
插件是否会有不同的webapp文件夹,以及是否可以配置更多这些文件夹以及它是否能正常工作。 (理想情况下,我希望保留webapp
下的许多文件在默认文件夹中的环境之间保持相同,并将其与环境文件夹合并。)
答案 0 :(得分:1)
实现您的要求的更好方法是使用maven配置文件。
您可以拥有开发和生产的配置文件,它将定义此ProxyURL。
您可以根据环境使用配置文件
进一步阅读: