部署后是否建议在应用服务器中更改 web.xml(或者实际上是任何其他文件)?是否所有应用服务器都公开了它们的部署/目录结构?
我宁愿在本地进行更改,重新构建战争(或 .ear 等),然后重新部署应用程序。
部署后是否建议在应用服务器中更改 web.xml(或者实际上是任何其他文件)?是否所有应用服务器都公开了它们的部署/目录结构?
我宁愿在本地进行更改,重新构建战争(或 .ear 等),然后重新部署应用程序。
关于您的第一个问题,这取决于资源的类型。对于类路径资源,您可以覆盖在应用程序服务器的类加载机制中具有更高优先级的任何目录中的文件(例如,如果您使用的是 Tomcat,则为 $CATALINA_HOME/lib)。对于 xml 文件,如 web.xml,您可以在打包文件中声明一个具有绝对路径的外部实体,但您必须确保该文件将出现在目标服务器上。例如,您打包的 web.xml 可能如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE document [
<!ENTITY webEntity SYSTEM 'C:\Temp\web.xml'>
]>
&webEntity;
因此,web.xml 的实际内容将是文件 C:\Temp\web.xml 的内容。
简而言之,没有官方的方法可以做到这一点,但有技巧。我想,人们所做的就是为每个生产站点制作一个定制包。有多种方法可以使用 Maven 自动执行此操作,例如战争覆盖或分类器。这是一个有趣的链接。
关于你的第二个问题,我不会依赖这个假设。在 Tomcat 服务器上修改爆炸的资源非常简单,但在 JBoss AS 上却不是那么简单。