内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
虽然J2EE模块参考功能允许你创建通用的Java库项目,但我无法找到一种简单的方法来为Web内容执行此操作。
我有许多常用的JSP,CSS文件,JavaScript库,甚至描述符片段,我都希望跨多个Dynamic Web Projects使用它们,因此这些工件只在一处编辑,但会导出到每个Dynamic WebProject WAR文件。
我很惊讶,我无法找到一种方法来提升网络空间的可重用性,而无需编写自己的脚本并挂接到导出过程。
有没有办法做到这一点?
我相信编写自己的脚本(例如使用ant的自定义构建步骤,在eclipse中易于配置)是更实际的解决方案之一。
你也可以创建多个webapps并引用它们各自的资源 - 这对于css,图像等来说很容易,而不需要使用jsp来访问你的代码。
我可以想象一些与tomcats crossContext =“true”选项相关的技巧(例如web应用程序),使一个应用程序可以访问其他应用程序中的类,但尚未尝试过。
我一直在同一个问题上搏斗了很长时间,最后偶然发现了一个很好的解决方案:“链接文件夹”。这是一个类似于符号链接的Eclipse功能 - 它允许你将单个物理文件夹映射到多个项目。这个解决方案的好处在于它不需要任何特殊的构建步骤,因此Eclipse可以自动将更改部署到本地Tomcat服务器进行测试。
我的配置如下:我有一个名为“SharedContent”的Eclipse项目。在WebContent目录中,有一个子目录“shareRoot”。所有可重用的文件 - .jsp,.css等 - 位于SharedContent / WebContent / shareRoot下的某个位置。这是一个动态Web项目,因此所有适当的编辑器都已启用,但我从未实际构建或部署它。
在我的其他项目中,我添加了指向shareRoot的链接文件夹。在Eclipse 3.6中,步骤是:
共享内容现在映射到您的项目中。烦人的是,当引用这些文件时,你必须在URL中包含“shareRoot /”,但是你可以使用你最喜欢的URL重写过滤器来解决这个问题。
你可以在Java源代码树中使用类似的技巧将Java文件映射到多个项目中。我已经开始这样做了,而不是将共享代码构建到.jar文件中,因为它避免了每次要在本地Tomcat服务器上测试更改时重新生成.jar的需求。