【发布时间】:2013-12-26 13:29:06
【问题描述】:
在我的项目中,我使用 Maven 将 Web 应用程序打包到 WAR 中,然后使用 CentOS 上的自定义 Maven 插件将其部署到 Jetty。部署到生产环境的每个项目都使用自定义插件。现在要求所有静态内容(如网站文本、属性)都打包在 WAR 之外,以便可以在生产中更改它而无需新的发布周期。我不确定如何实现这种外部化。
Jetty 服务器具有Jetty quick start guide 中描述的目录结构。目前,Web 应用程序已经提供了一些 .properties 文件,这些文件可以在外部进行更改,这些文件位于resources/ 目录中。这些文件由自定义 Maven 插件移至此处。 WAR 位于webapp/ 文件夹中。我的问题的一种选择是使用<packagingExcludes> 的maven-war-plugin 不包括例如WAR 中的*.xhtml 和*.properties。稍后,我可以使用自定义 Maven 插件将排除的文件移动到 resources/ 目录。但是,我觉得这不是将静态内容外部化的正确方法...... xhtml 文件不应该存在于webapp/ 文件夹中,而唯一的属性文件不应该存在于resources/ 文件夹中吗?
我还研究了将 WAR 部署为爆炸式的选项,但我不确定这样的含义。显然,展开的 WAR 文件中的更改将在下一次部署中被覆盖,但想法是在开发和生产中都进行静态更改。另外,我不确定如何实现 WAR“爆炸”,如果在 jetty.xml 中配置,Jetty 是否会为您的 WAR 做一些事情,还是我必须在部署之前提取 WAR?
最后,人们如何在 Jetty 中提供可以在生产中更改的静态内容?让 WAR 和静态文件同时存在
【问题讨论】:
标签: maven jakarta-ee resources jetty packaging