单独的web.xml用于开发和生产

And*_*gin 11 java eclipse web-applications

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

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

  1. 将Eclipse项目导出为WAR.
  2. 将WAR上传到服务器.
  3. 重新部署.

问题是我必须在导出之前手动取消注释web.xml中的安全性约束.

你怎么解决这个问题?

我还在一些文章中遇到了"web.xml很少改变"的意见.但是如果在每次更新时导出到WAR,web.xml怎么能不改变?

提前致谢!

Pas*_*ent 11

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

换句话说,我将构建置于Maven 2下并使用包含特定maven-war-plugin配置的生产配置文件来构建包含web.xml具有所需安全性约束的WAR .另一种选择是合并发展web.xml(货物可以做到这一点),以增加安全性约束,但是这已经是有点更"高级"的解决方案(有点更复杂到位).


ska*_*man 0

假设您坚持web.xml在部署到生产之前进行更改的想法,那么我可能的方法是web.xml通过简单的 XSL 转换来运行开发,该转换web.xml用仅用于生产的元素(例如安全约束)“装饰”。web.xml假设您可以将此步骤挂接到构建过程中,那么在导出过程中应该会出现生产就绪状态。

然而,跨环境不要有不同通常是一个好主意web.xml,它会降低你的测试的价值。在所有环境中具有相同的值将降低仅在生产环境中出现错误的风险。