如何在eclipse项目之间共享web内容?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (39)

虽然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中,步骤是:

  1. 在Package Explorer中,右键单击需要包含可重用文件的项目的WebContent目录。
  2. 选择新建 - >文件夹。
  3. 点击“高级>>>”按钮。
  4. 选择“链接到备用位置(链接文件夹)”单选按钮。
  5. 在正下方的文本框中,单击浏览。
  6. 在源代码树中,导航到SharedContent / WebContent / shareRoot。然后单击确定/打开/完成按钮,直到所有对话框消失。

共享内容现在映射到您的项目中。烦人的是,当引用这些文件时,你必须在URL中包含“shareRoot /”,但是你可以使用你最喜欢的URL重写过滤器来解决这个问题。

你可以在Java源代码树中使用类似的技巧将Java文件映射到多个项目中。我已经开始这样做了,而不是将共享代码构建到.jar文件中,因为它避免了每次要在本地Tomcat服务器上测试更改时重新生成.jar的需求。

扫码关注云+社区