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

时间:2008-12-08 01:21:24

标签: eclipse dynamic project

虽然J2EE模块引用功能允许您创建常见的Java库项目,但我找不到一种巧妙的方法来为Web内容执行此操作。

我有一些常见的JSP,CSS文件,JavaScript库甚至描述符片段,我想在多个动态Web项目中使用它们,这样这些文物只在一个地方编辑,但会被导出到每个动态WebProject WAR文件。

令我感到惊讶的是,如果不编写自己的脚本并挂钩到导出过程中,我就无法找到提升网络空间可重用性的方法。

有办法做到这一点吗? 谢谢。 太

4 个答案:

答案 0 :(得分:13)

我长期以来一直在努力解决同样的问题,最后偶然发现了一个很好的解决方案:“链接文件夹”。这是一个与符号链接类似的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。然后单击“确定”/“打开”/“完成”按钮,直到所有对话框消失。

  7. 共享内容现在已映射到您的项目中。令人讨厌的是,在引用这些文件时,您必须在URL中包含“shareRoot /”,但您可以使用自己喜欢的URL重写过滤器解决此问题。

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

答案 1 :(得分:3)

我相信编写自己的脚本(例如使用ant的自定义构建步骤,可以在eclipse中轻松配置)是更实用的解决方案。

您还可以创建多个Web应用程序并引用它们各自的资源 - 这对于css,图像等来说很容易,而不是使用需要访问代码的jsp。

我可以想象上下文的tomcats crossContext =“true”选项的一些技巧(例如webapplication),使一个应用程序能够访问其他应用程序中的类,但还没有尝试过。

对不起 - 我相信这不是你想听到的答案......

答案 2 :(得分:3)

如果您正在使用Subversion,则可以使用svn:externals来引用两个项目中的公共文件。然后,您可以在一个位置编辑公共文件,如果您执行svn up,则所有文件都将同步。

答案 3 :(得分:-2)

哈哈,我给你一个迟到的惊喜

我是中国人,我的英语很差,但我可以帮助你。

奥拉夫科克是对的,但他的回答并不完美。

这是完美的答案。你必须参考以下网址,它可以使用。

click here

在网址页面中,属性内容框的示例并不准确,请告诉我:

如果需要共享文件:

a.jsp  svn://myhome.com/svn/myproject/trunk/a.jsp

如果需要共享文件夹:

xml  svn://myhome.com/svn/myproject/trunk/xml
相关问题