Eclipse 中的Java 工作集和Resource 工作集有什么区别?
Resource 工作集更通用,它不仅可以包括 Java 应用程序/项目,但让我这样说:
让我们假设 Java 开发人员的日常生活。您是否建议他/她使用资源工作集而不是Java 工作集?是否有任何特定情况下您更喜欢其中一种?
听起来这应该回答了这个问题:
工作集是 Eclipse 项目的子集。您可以创建不同的工作集,然后选择要在导航器视图中显示的工作集。
具体来说:
“工作集”(在此特定上下文中)是“Eclipse 事物”
Eclipse 工作集的目的是帮助组织您的项目
一个项目由“东西”组成:源代码、位图图形文件、WSDL、CSS 样式表——几乎任何可以想象的东西。
因此,Eclipse 项目被组织(例如,看看我的 J2EE 透视图)成“src”、“WebContent”、“Services”等小节。项目本身可以是许多不同类型之一:“Java 项目”、“Java Swing 设计项目”和“动态 Web 项目”等等。
类似地,Eclipse 工作集可以是以下几种不同类型之一:“Java 工作集”、“断点工作集……和“资源工作集”。
与 Eclipse“视图”和“透视图”一样,您通常可以随时访问所需的任何项目资源。选择一个或另一个透视图只会使对象(例如“问题窗格”或“构建列表”)更容易获得.
你选择哪种“工作集”——或者你是否使用工作集——很大程度上只是个人喜好和方便的问题。
如果您还有其他问题,请告诉我们。
PS:附加链接:
https://www.ibm.com/developerworks/library/os-eclipse-visualstudio/
如前所述,许多开发人员将他们所有的项目加载到一个 Eclipse 工作区中。这很方便,但有时会造成太多混乱。除了关闭不必要的项目之外,您还可以定义工作集:元素组(项目、文件夹、类等)。Eclipse 可以在不同的视图(如包资源管理器)和操作(如搜索)中使用工作集。
...和:
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 中定义的类型/类,而资源工作集来查找所有不同的类型。
工作集是工作区的子集,是组织所有项目的一种方式。对于不同类型的工作集,您还可以使用此处描述的不同类型的编辑向导。
编辑向导
对于 java 项目,Java 工作集是一种更舒适的工作方式。假设您在一个 java 工作集中有一堆 java 项目,并且您刚刚打开了 Java 工作集的编辑向导:
首先,您可以在右表中看到当前工作集中的所有内容。如果您现在想要包含另一个项目,您只需选择项目并按CTRL+即可a。要删除项目,您可以按CTRL+r
在资源工作集的属性中,您不知道工作集中有什么,直到您滚动到树视图的底部。对于工作空间中拥有 300 多个项目的人来说,这是不可能的。
结构
拥有两种类型的工作集的一个好处是结构。在日常工作流程中,有不同类型的工作集很有用,因为它们有不同的图标。如果你有像配置文件这样的资源,你可以创建一个名为“配置文件”的资源工作集并将所有文件放在那里。
之后,您可以打开文件搜索并在配置文件中进行搜索。这是可能的,因为您可以将工作集定义为搜索范围。
在 Eclipse 中有几个部分,您可以使用Select working set 对话框来选择您的工作集。
工作集之间的一个区别是它们提供了不同的编辑向导(如此处所述:http: //help.eclipse.org/helios/index.jsp?topic= %2Forg.eclipse.platform.doc.user%2Fconcepts%2Fcworkset .htm)。如果您分别编辑资源工作集和 java 工作集,您将看到它们使用不同的屏幕来选择包含哪些资源/项目。
除此之外,我没有发现任何其他区别。您可以以任何方式选择哪些资源似乎也没有什么不同。因此,要回答您的问题,我会回答“没关系”,因为它们的行为方式相同。
我将尝试从插件开发人员的角度回答。从API:
工作集旨在对元素进行分组以呈现给用户或对一组元素进行操作。
这可以是任何类型的元素,而不必是一个项目。工作集由插件提供,插件可以决定可以添加什么样的元素,并提供添加元素的向导以及可以执行的操作。
对于它所在的工作集的项目来说并不重要。如果Java项目在资源工作集中,它仍然是Java项目。它只影响过滤某些类型的工作集的某些视图、对话框和操作。
除了Java和Resource工作集之外,还有Breakpoint、Task、Plugin和C/C++工作集(当然取决于您的 Eclipse 设置)。一些视图只显示某些类型的工作集,而其他视图似乎没有过滤它们。例如,“打开类型”和“打开资源”对话框似乎显示了所有类型的工作集。“打开任务”对话框仅显示任务工作集。
那么 Java 和 Resource 工作集之间的实际区别是什么?我还没有看到任何功能差异。所有标准视图和对话框要么似乎处理这两种工作集类型,要么都不处理。大多数插件似乎根本不关心区别 - 但这并不意味着某些插件可以不同地处理这两种类型。
另一方面,资源工作集似乎是任何类型项目的包罗万象,因此大多数插件在这里没有区别是有道理的。例如,如果我要创建一个插件来提供分析 Java 项目的选项,我会将该操作添加到 Java 工作集的上下文菜单中,但肯定不会添加到 C/C++ 工作集。但是有些人可能会使用资源工作集,因为他们在同一个工作集中同时拥有 Java 和 C 项目。因此,我也必须将特定于 Java 的操作添加到资源工作集的上下文菜单中。