【问题标题】:Difference between Java working set and Resource working set in EclipseEclipse中Java工作集和Resource工作集的区别
【发布时间】:2012-12-11 16:21:43
【问题描述】:

Eclipse中Java工作集资源工作集有什么区别?

资源工作集更通用,它不仅可以包括 Java 应用程序/项目,我这样说吧:

让我们假设 Java 开发人员的日常生活。您是否建议他/她使用 Resource 工作集 而不是 Java 工作集? 是否有任何特定情况下您更喜欢其中一个?

【问题讨论】:

  • 工作集似乎更侧重于“java 开发人员”,您可以关闭工作集,这很有帮助,并且在产品配置中您可以添加工作集。不确定资源集,我查看了我的 IDE 无法弄​​清楚如何创建资源集!
  • @DuncanKrebs 按照这些说明avajava.com/tutorials/lessons/… 你可以了解如何创建一个!

标签: java eclipse


【解决方案1】:

听起来这应该回答了这个问题:

工作集是 Eclipse 项目的子集。你可以创建 不同的工作集,然后选择要显示的工作集 导航器视图。

具体来说:

  1. “工作集”(在这个特定的上下文中)是一个“Eclipse 事物”

  2. Eclipse 工作集的目的是帮助组织您的项目

  3. 一个项目由“东西”组成:源代码、位图图形文件、WSDL、CSS 样式表——几乎所有可以想象的东西。

  4. 因此,Eclipse 项目被组织(例如,从我的 J2EE 角度看)成“src”、“WebContent”、“Services”等子部分。项目本身可以是多种不同类型之一:“Java 项目”、“Java Swing 设计项目”和“动态 Web 项目”等等。

  5. 同样,Eclipse 工作集可以是以下几种不同类型之一:“Java 工作集”、“断点工作集...”和“资源工作集”。

  6. 与 Eclipse“视图”和“透视图”一样,您通常可以随时访问所需的任何项目资源。选择一个或另一个透视图只会使对象(例如“问题窗格”或“构建列表”)更容易去。

  7. 您选择哪种“工作集” - 或者您是否使用工作集 - 在很大程度上只是个人喜好和方便的问题。

如果您还有其他问题,请告诉我们。

PS: 附加链接:

https://www.ibm.com/developerworks/library/os-eclipse-visualstudio/

如前所述,许多开发人员将他们的所有项目加载到一个 Eclipse 工作区。这很方便,但有时也可以创建 很混乱。除了关闭不必要的项目,您还可以 定义工作集:元素组(项目、文件夹、类、 ETC。)。 Eclipse 可以在不同的视图中使用工作集(例如 包资源管理器)和操作(如搜索)。

...和:

help.eclipse.org: Working Sets

【讨论】:

  • 该链接讨论了制作资源集以及何时使用它们,但我仍然不知道如果我可以将所有 Java 项目添加到后者(我总是最终使用资源集,因为我也希望能够链接非 java 项目)
  • 不要按字面意思理解这些名称——它们不是“硬而快速”的定义;仅仅是“指导方针”。 “资源”更像是“位图文件”(在我上面的例子中); “Java”显然就像我上面示例中的“src”文件夹。
  • 完全同意@happytimeharry 我仍然不明白什么时候必须使用Java 工作集而不是资源工作集。如果没有任何好处,为什么它被定义为两个独立的实体?
  • 我认为我们忽略了这里的区别:Java 工作集在 Java 项目的上下文中有专门的用途:它检查 java 类路径中的资源,不像资源工作集只检查包含的项目中的文件。
  • 这个答案甚至没有解决原来的问题。正如@Neel 指出的那样,它没有解释资源/java 工作集之间的区别。
【解决方案2】:

eclipse 上下文中的工作集是相关项目的逻辑分组,以简化 IDE 中的搜索和组织视图。

资源工作集可以捕获所有类型的资源 - 可能是 java 源代码、html、xml、javascript、图像 - 任何存在于包含在工作集中的项目范围内的东西。

Java 工作集是一个不同的工作集(它不是资源工作集的子集!),它只捕获属于源文件夹并被编译到类路径中的那些 java 文件,或者那些属于构建路径中的模块(库)。因此,它可以让您查找类路径中的 java“类”。请注意,您项目中的所有 java 文件可能不一定都构建到类路径中(例如,当您排除 java 源文件时,它不再被构建)。但是资源工作集仍然可以检测到未包含在类路径中的 java 源文件(您会注意到包含的 java 源文件的图标是实心 J,而对于排除的 java 源,它是空心的J)。

示例: 假设您有两个项目 p1 和 p2,其中 p1 属于工作集,但 p2 不属于。所以:

MyClass.java(属于 p1 并包含在构建路径中)- 显示在 java 类型搜索 (Ctrl + T) 和资源搜索 (Ctrl + R) 中。

MyOtherClass.java(属于 p2 并包含在构建路径中)- 不显示在 java 类型搜索或资源搜索中。

MyExcludedClass.java(属于 p1 并从构建路径中排除)- 不显示在 java 类型搜索中,但显示在资源搜索中。

MyExcludedClass.class(属于 p1 的构建路径中的依赖 jar) - 显示在 java 类型搜索中但不显示在资源搜索中。

MyWebPage.html (属于 p1) - 不显示在 java 工作集中,而是显示在资源工作集中。

MyOtherWebPage.html(属于 p2)- 不显示在 java 类型搜索或资源搜索中。

MyConfig.xml (属于 p1) - 不显示在 java 类型搜索中但显示在资源搜索中。

因此,在 Java 开发人员的使用环境中:我使用 Java 工作集来查找在 Java 中定义的类型/类,而资源工作集来查找所有不同的类型。

【讨论】:

  • 我不相信你所说的完全正确,如果我理解正确的话。请看一下goo.gl/AZPrc 我已经创建了一个 java 工作集,在其中创建了一个动态 Web 项目,并在其中创建了一个 xml 文件。我还能够将文件添加到项目中,它甚至会显示在 Java 工作集中。如果我误解了你所说的,请告诉我。
  • 你是对的 - 请检查更新的答案。在您的项目中,尝试通过查找类型并从下拉列表中选择工作集来导航到 Java 资源 (Ctrl + T)。将此与您查找任何资源 (Ctrl + R) 时的行为进行比较,然后选择您的工作集。
  • 这是这里的最佳答案,也是尝试回答 OP 问题的仅有的两个(当前)之一。
  • @JonCoombs 谢谢乔恩!
【解决方案3】:

工作集之间的一个区别是它们提供了不同的编辑向导(如此处所述:http://help.eclipse.org/helios/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Fconcepts%2Fcworkset.htm)。如果您分别编辑资源工作集和 java 工作集,您会看到它们使用不同的屏幕来选择包含哪些资源/项目。

除此之外,我没有发现任何其他差异。您可以以任何方式选择哪些资源似乎也没有什么不同。因此,要回答您的问题,我会回答“没关系”,因为它们的行为方式相同。

【讨论】:

  • “提供不同的编辑向导”这就是为什么使用 Java 工作集而不是资源工作集很重要的原因?我的问题是针对 Java 工作集和资源工作集的。他们定义不同种类的地方应该有一些区别吗?你不同意吗?
  • 我同意应该有所不同。但除了不同的巫师,我也找不到一个。我已经搞砸了很多,但没有发现我可以用其中一个做而我不能用另一个做的任何事情......
【解决方案4】:

工作集是工作区的子集,是组织所有项目的一种方式。使用不同类型的工作集,您还拥有不同类型的编辑向导as described here

编辑向导

对于 java 项目,Java 工作集是一种更舒适的工作方式。假设您在一个 java 工作集中有一堆 java 项目,并且您刚刚打开了 Java 工作集的编辑向导:

首先,您可以在右表中看到当前工作集中的所有内容。如果您现在想要包含另一个项目,您只需选择项目并按 CTRL+a。要删除项目,您可以按 CTRL+r

在资源工作集的属性中,您不知道工作集中有什么,直到您滚动到树视图的底部。这对于工作空间中拥有 300 多个项目的人来说是不可能的。

结构

拥有两种类型的工作集的好处是结构。在日常工作流程中,有不同类型的工作集很有用,因为它们有不同的图标。如果你有配置文件之类的资源,你可以创建一个资源工作集 namend 'config files' 并将所有文件放在那里。

之后,您可以打开文件搜索并在配置文件中进行搜索。这是可能的,因为您可以将工作集定义为搜索范围。

在 Eclipse 中有几个部分,您可以使用 Select working set dialog 选择您的工作集。

【讨论】:

  • “使用不同类型的工作集,您还可以使用此处描述的不同类型的编辑向导。”您能否区分我将使用 Resource Working Set VS 获得的不同编辑向导。 Java 工作集?它们不同吗?如果是的话,我为什么以及什么时候应该使用一个来对抗另一个?感谢您这么长的回答,但除了第一行之外,它没有回答我的问题。
【解决方案5】:

我会尝试从插件开发者的角度来回答。来自API

工作集旨在对元素进行分组,以便向用户展示或对一组元素进行操作。

这可以是任何类型的元素,而不必是一个项目。工作集由插件提供,插件可以决定可以添加什么样的元素,以及提供添加元素的向导以及可以执行的操作。

对于一个项目在哪个工作集中并不重要。如果 Java 项目在资源工作集中,它仍然是一个 Java 项目。它只影响过滤某些类型的工作集的一些视图、对话框和操作。

除了JavaResource工作集,还有BreakpointTaskPlugin 和 C/C++ 工作集(当然取决于您的 Eclipse 设置)。一些视图只显示某些类型的工作集,而其他视图似乎没有过滤它们。例如,“打开类型”和“打开资源”对话框似乎显示了所有类型的工作集。 “打开任务”对话框仅显示任务工作集。

那么 Java 和 Resource 工作集之间的实际区别是什么?我还没有看到任何功能差异。所有标准视图和对话框要么似乎处理这两种工作集类型,要么都不处理。大多数插件似乎根本不关心区别 - 但这并不意味着某些插件可以以不同的方式处理这两种类型。

另一方面,资源工作集似乎适用于任何类型的项目,因此大多数插件在这里没有区别是有道理的。 例如,如果我要创建一个插件来提供分析 Java 项目的选项,我会将该操作添加到 Java 工作集的上下文菜单中,但肯定不会添加到 C/C++ 工作集。但是有些人可能会使用资源工作集,因为他们在同一个工作集中同时拥有 Java 和 C 项目。因此,我也必须将 Java 特定的操作添加到资源工作集的上下文菜单中。

【讨论】:

    猜你喜欢
    • 2015-02-24
    • 2017-06-06
    • 2012-06-28
    • 1970-01-01
    • 2011-01-30
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    相关资源
    最近更新 更多