虽然J2EE模块引用功能允许您创建常见的Java库项目,但我找不到一种巧妙的方法来为Web内容执行此操作.
我有一些常见的JSP,CSS文件,JavaScript库甚至描述符片段,我想在多个动态Web项目中使用它们,这样这些文件只在一个地方被编辑,但会被导出到每个Dynamic WebProject WAR中文件.
我很惊讶我没有找到一种方法来提升网络空间的可重用性,而无需编写我自己的脚本并挂钩到导出过程.
有没有办法做到这一点?谢谢.马特.
我长期以来一直在努力解决同样的问题,最后偶然发现了一个很好的解决方案:"链接文件夹".这是一个与符号链接类似的Eclipse功能 - 它允许您将单个物理文件夹映射到多个项目.这个解决方案的好处是它不需要任何特殊的构建步骤,因此Eclipse可以自动将更改部署到本地Tomcat服务器以进行测试.
我的配置如下:我有一个名为"SharedContent"的Eclipse项目.在WebContent目录中,是一个子目录"shareRoot".所有可重用文件 - .jsp,.css等 - 位于SharedContent/WebContent/shareRoot下的某个位置.这是一个动态Web项目,因此启用了所有适当的编辑器,但我从未实际构建或部署它.
在我的其他项目中,我添加一个指向shareRoot的链接文件夹.在Eclipse 3.6中,步骤如下:
在Package Explorer中,右键单击需要包含可重用文件的项目的WebContent目录.
选择新建 - >文件夹.
单击"高级>>>"按钮.
选择"链接到备用位置(链接文件夹)"单选按钮.
在此下方的文本框中,单击"浏览".
在源树中,导航到SharedContent/WebContent/shareRoot.然后单击"确定"/"打开"/"完成"按钮,直到所有对话框消失.
共享内容现在映射到您的项目中.令人讨厌的是,在引用这些文件时,您必须在URL中包含"shareRoot /",但您可以使用您喜欢的URL重写过滤器来解决此问题.
您可以在Java源代码树中使用类似的技巧将Java文件映射到多个项目中.我已经开始这样做,而不是将共享代码构建到.jar文件中,因为它避免了每次要在本地Tomcat服务器上测试更改时重建.jar的需要.