用于开发和生产的独立卷筒纸.xml

2022-09-04 21:16:12

我的Web.xml在开发和生产环境中是不同的。例如,在开发环境中,不需要安全约束。

通常,我部署新的应用程序版本,如下所示:

  1. 将 Eclipse 项目导出到 WAR。
  2. 将 WAR 上载到服务器。
  3. 部署。

问题是,在导出之前,我必须手动取消对 Web.xml中的安全约束。

你如何解决这个问题?

我还在一些文章中遇到一种观点,即“网络.xml很少改变”。但是,如果Web.xml在每次更新时都导出到WAR,它怎么能不改变呢?

提前致谢!


答案 1

如果你不能在开发过程中使用相同的,我会自动化构建过程,使用两个,并在构建时捆绑“正确”的一个,这取决于Brian建议的目标环境。但是,我会选择Maven而不是Ant,因为它需要更少的工作,恕我直言,它有一个名为配置文件的内置功能,非常适合管理像这里这样的环境特定的东西。web.xmlweb.xml

换句话说,我会将构建放在Maven 2下,并使用包含特定maven-war-plugin配置的生产配置文件来构建包含具有所需安全约束的WAR。另一种选择是合并开发(货物可以这样做)以添加安全约束,但这已经是一个更“高级”的解决方案(稍微复杂一些)。web.xmlweb.xml


答案 2

我将使用不同的配置创建开发和生产部署。通过您的构建(Ant / Maven等)自动构建/维护这些元素,以保持对所需常见元素的控制。web.xml

过去,我不得不多次解决这个问题,最终编写了XMLTask - 一个Ant插件,允许在不使用普通文本替换的情况下修改XML文件(它比这聪明得多),也不必弄乱XST(它比这简单得多)。如果您遵循上述方法,则可能需要检查一下。这是一篇文章我写了关于它的文章。


推荐