Eclipse工作区:为什么和为什么?

时间:2012-11-25 15:07:58

标签: eclipse workspace

我已经看过,阅读并想到了使用工作空间的不同方式(每个项目,每个应用程序(多个或非多个),每个程序语言,每个目标(web开发,插件,......)等等)我仍然怀疑最好的方法是什么。

无论如何,可以给出一个精心设计的,但不是一篇关于此的长篇大论吗?

这涉及很多子问题,可以这么说,我不知道我应该问的所有具体的子问题,因为我不确定我不知道eclipse的所有方面(和工作区) ),但我会尝试举例说明我在寻找的东西:

  • 为什么?
    • eclipse开发意味着它用于什么?
    • 其他/大多数人的想法是什么?
    • 您怎么看?
    • ......?
  • 为什么?
    • 是否存在配置冲突与共享优点?
    • 任何文件空间原因?
    • 性能?
    • ......?

哦,我说的是开发人员使用不同语言和协议的最小用例,并不一定都是在一个项目中(例如php,javascript和xml用于某些项目,C#用于其他项目,java和还有其他SQL等。)

  

编辑2012-11-27:别误会我的意思。我不怀疑使用   工作区,我只是想使用它,因为它应该是或如果   任何人都会认为它更好。那么“为什么?”意思是:什么是最好的用途?和   “为什么?”实际上是针对“为什么?”,换句话说:告诉我原因   为你的答案。

4 个答案:

答案 0 :(得分:37)

我将向您提供我对Java世界感到非常不舒服的人的看法,我认为这也是您的理由。

它是什么

工作空间是将组合在一起的概念:

  1. 一组(某种程度上)相关项目
  2. 与所有这些项目有关的一些配置
  3. Eclipse本身的一些设置
  4. 这可以通过创建一个目录并放入其中(您不必这样做,它已经为您完成)文件来管理告诉Eclipse这些信息。您只需要选择放置这些文件的文件夹即可。此文件夹不需要与放置源代码的位置相同 - 优先不会。

    探索上述每个项目:

      
        
    1. 一组(某种程度上)相关项目
    2.   

    Eclipse似乎总是与特定工作区相关联地打开,即,如果您位于工作区A 中并决定切换到工作区B (文件>切换工作区),Eclipse将自行关闭并重新打开。与工作区A 相关联(并且出现在项目资源管理器中)的所有项目将不再出现,现在将显示与工作区B 关联的项目。因此,似乎要在Eclipse中打开的项目必须与工作区相关联。

    请注意,这并不意味着项目源代码必须位于工作区内。工作区将以某种方式与磁盘中项目的物理路径有关(任何人都知道如何?我在工作区内查找指向项目路径的文件,但没有成功)。

    这样,项目一次可以在多个工作空间内。因此,保持工作区和源代码分离似乎很好。

      
        
    1. 与所有这些项目有关的一些配置
    2.   

    我听说过一些东西,比如Java编译器版本(比如1.7,例如 - 我不知道'版本'这个词是否在这里),是工作区级别的配置。如果您的工作区内有多个项目,并在Eclipse中编译它们,那么所有项目都将使用相同的Java编译器进行编译。

      
        
    1. Eclipse本身的一些设置
    2.   

    像键绑定这样的东西也存储在工作区级别。因此,如果您定义ctrl + tab将以智能方式切换选项卡(不堆叠它们),则只会绑定到当前工作区。如果你想在另一个工作区中使用相同的键绑定(我想你想要!),你似乎必须在工作空间之间导出/导入它们(如果这是真的,这个IDE是建立在一些非常奇怪的前提上的)。 Here is a link on this

    似乎工作空间不一定兼容不同的Eclipse版本。 This article建议您为包含Eclipse版本名称的工作区命名。

    而且,更重要的是,一旦你选择了一个文件夹作为你的工作区,不要触摸那里的任何文件,否则你会遇到麻烦。

    我认为如何使用它

    (实际上,正如我写的那样,我不知道如何以一种好的方式使用它,这就是我寻找答案的原因 - 我想在这里集合)

    1. 为您的项目创建一个文件夹:
      /projects

    2. 为每个项目创建一个文件夹,并将项目中的子项目分组:
      /projects/proj1/subproj1_1
      /projects/proj1/subproj1_2
      /projects/proj2/subproj2_1

    3. 为工作区创建单独的文件夹:
      /eclipse-workspaces

    4. 为您的项目创建工作区:
      /eclipse-workspaces/proj1
      /eclipse-workspaces/proj2

答案 1 :(得分:34)

工作空间的重点是将一组相关项目组合在一起,这些项目通常组成一个应用程序。工作区框架归结为eclipse.core.resources插件,它自然地通过设计是有意义的。

项目具有性质,构建器附加到特定项目,当您在一个项目中更改资源时,您可以实时查看在同一工作区中的项目中的编译或其他问题。所以我建议的策略是为你工作的不同项目提供不同的工作空间,但是在eclipse中没有工作空间,就没有项目和配置集合的概念,毕竟它是一个IDE工具。

如果这没有意义,请问Net Beans或Visual Studio如何解决这个问题?这是同一个主题。 Maven是一个很好的例子,将一组相关的maven项目检入工作区可以让您实时开发和查看错误。如果不是工作区,你还会建议什么? RCP应用程序可以是一个不同的野兽,取决于它的用途,但在真正的IDE意义上,我不知道什么是比项目的工作空间或上下文更好的解决方案。只是我的想法。 - 邓肯

答案 2 :(得分:2)

基本上工作空间的范围分为两点。

第一点(和主要)是它自己的eclipse,并且与设置和元数据配置(插件ctr)相关。每次创建项目时,eclipse都会收集所有配置并将它们存储在该工作空间中,如果在同一工作空间中存在冲突的项目,则可能会丢失某些功能甚至是自己的eclipse稳定性。

第二(次要)可以采用的发展战略。 一旦满足(并掌握)主要范围并且需要进一步调整项目关系(如库,透视图ctr),则根据开发习惯或可能的语言/框架“行为”启动单独的工作空间。 例如,DLTK是一种野兽,应该包含在一个单独的笼子里。 在论坛上有很多抱怨它停止工作(正常或根本没有),并建议解决方案是从当前工作区清除等效插件的设置。

就个人而言,当涉及到与使用插件的当前状态所带来的已知问题相关的单独工作空间时,我发现自己更倾向于语言区别。我最好将它们保持在最小数量,因为这样可以减少项目成为时的挫败感......很多并且版本控制并不是您保留项目的唯一版本。 最后,如果由于无关项目的出现而加载了大量(不必要的)插件,加载速度和性能可能会出现。 底线;每个人都没有一个解决方案,没有解决问题的主蓝图。这是随着经验增长的东西, 少即是多!

答案 3 :(得分:0)

尽管我已经使用Eclipse多年了,但是这个“答案”只是一个推测(今晚我将尝试尝试)。如果它被淘汰,那显然我是错的。

Oracle依靠CMake为其MySQL连接器C源代码生成Visual Studio“解决方案”。解决方案中包含“项目”,这些项目可以单独或共同(通过解决方案)进行编译。每个项目都有自己的makefile,使用与其他项目不同的设置来编译其解决方案的一部分。

类似地,我希望Eclipse Workspace可以容纳一个相关的makefile项目(Eclipse),以及一个主项目,该项目的依赖项将编译各个唯一的makefile项目作为其构建“解决方案”的前提。 (我的文件夹结构将如@Rafael所述)。

因此,我希望使用Workspaces的一种好方法是模仿Visual Studio将相异项目组合到解决方案中的能力。