将@Eric 的问题一分为二,我们有:
1) 如何共享常见的静态资源,如 JavaScript、CSS 和
图像文件而不在每个 Web 模块中复制它们?
根据 servlet 3.0 规范,您可以在外部共享资源,将它们放在源文件夹 src/main/resources 中。要使用动态文件,如 jsp,您应该将文件放在 META-INF/resources 文件夹中。那么您的共享项目(jar)结构将如下所示:
mymodule
| src
| | main
| | java
| | [java code]
| | resources
| | META-INF
| | resources
| | [your static and dynamic files]
例如,如果您的共享 js 文件位于 src/main/resources/META-INF/resources/js/myjsfile.js 中,则可以使用以下路径将其加载到您的 html 文件中:
<script src="/js/myjsfile.js"></script>。相同的方法对您的 css 文件有效。
附加信息:您可以使用<jsp:include page=""/> 标签在您的页面中包含一个共享的jsp 文件。而且,如果您使用的是 Spring 并且已将 viewResolver 的前缀配置为“/WEB-INF/view”之类的内容,则必须将动态文件包含在指定文件夹中,也就是说,它们将放在文件夹 中src/main/resources/META-INF/resources/WEB-INF/view'.
2) 我也想以我可以继续的方式这样做
从 Eclipse 运行 Web 应用程序并更改我对
静态文件自动可用于 Eclipse 的运行服务器。
Eclipse 的服务器插件使用项目的“部署程序集”配置信息来跟踪文件并自动发布更改。在您的共享项目中,您可以通过两种方式修改部署程序集:您可以 a) 右键单击您的项目 -> 属性 -> 部署程序集 -> 添加 -> 文件夹,然后选择文件夹包含要部署和监视的文件,或者 b) 编辑配置文件“.settings/org.eclipse.wst.common.component”,添加类似
<wb-module deploy-name="mymodule">
<wb-resource deploy-path="/" source-path="/src/main/resources"/>
</wb-module>
如果您选择第二种方法,请小心,以免中断部署任务的执行。
附加信息:如果您使用 Maven 的资源插件来过滤资源,您可能希望在部署程序集中添加您的“target”文件夹,而不是您的“src”文件夹,因为后者将包含未过滤的资源,您的属性 - 格式为 ${my.property} - 未设置。