Eclipse:我应该为每个项目创建一个工作区吗?


80

我只是在想,是否最好将我所有的Eclipse项目都放在一个工作区中,或者每1个项目做1个工作区。我只是一个单独的开发人员,或多或少有爱好,但是我创建的应用程序确实具有在相当频繁的cron作业上运行的生产版本,因此几乎就像是业余生产环境。

到目前为止,我注意到的唯一问题是导出JAR文件,我有可能包含来自其他项目的源文件,这看起来可能会很混乱。


我发现对每个源代码分支使用工作空间对我来说效果很好。如果您需要在一个给定的分支中有多个位置,那么将它们放在单独的工作空间中可能也很有用。
托尔比约恩Ravn的安徒生

Answers:


29

我曾经保持单独的工作区,但是厌倦了保持它们之间的设置一致的困难。现在,我要做的是为不同的项目创建工作集,并更改当前的窗口工作集以过滤掉除我要处理的内容以外的所有内容。到目前为止,这对我来说还不错。

由于每个项目可以具有多个工作集,并且窗口工作集可以是工作集的任意组合,因此以这种方式在任何给定时间仅查看所需内容是很容易的。


如果是我,我会选择这个作为正确答案。仅需使用窗口工作集将内容过滤掉,而无需破坏任何内容或不必在此处和此处创建工作区,非常容易。这可以帮助您仅查看相关项目,并仅关注您需要的内容。
steelmonkey

28

我围绕产品创建Eclipse工作区,因为对我来说,一个产品可以在其中包含多个项目,例如,将核心库编译到一个项目中的一个jar中,而其他项目则使用它。

在生产环境方面,您希望产品在不同的目录结构中运行,这样更清洁。在Eclipse中,工作空间会创建一个带有工作空间名称的目录。因此,请基于产品/应用程序而不是其中的一个或多个项目来创建工作区。


1
您是否将整个工作空间作为一个根初始导入/签入添加到源代码管理中?
僵尸2010年

4
通常,我们不将工作区或Eclipse项目文件添加到源代码管理中,而仅添加项目代码和资产。这里的目标是只要源代码在夜间构建系统中编译并运行,开发人员便可以根据需要自定义其工作空间。
omermuhammed 2010年

1
升级Eclipse怎么样?您是否创建一个新的工作区并导入该项目?(也许这应该是一个新问题……)我问,因为从Indigo,Helio,Juno(现在是Kepler)升级后,我遇到了问题,因此为每个创建一个新的工作区。很不方便。
dfdumaresq

3
升级Eclipse时,首先将工作区备份到一个单独的文件夹中,然后尝试使用新的Eclipse打开现有的工作区(我认为Kepler是最新的)。如果运行良好,则适合进行常规开发,否则可以为新的Eclipse版本创建新的工作区。你提到的问题,精心调试它们,并确保它们是日食的问题与工作空间配置问题,说硬编码路径等
omermuhammed

6

如果项目是相互关联的(即相互依赖),那么将它们放在相同的工作空间中通常很有意义。另外,如果您正在从事多个项目来解决相关问题,则同样适用。

否则,您将不必要地浪费大量时间来更改工作区,尤其是在IDE会立即向您显示一个项目中的更改对另一个项目的影响时。


6

我不仅为每个项目保留了单独的工作空间,而且还保留了Eclipse的单独副本。这是因为我通常不得不长时间搁置项目,并在没有任何通知的情况下将其退回,而它们绝对是必须建立的。我无法把握为最新项目(基于Maven)安装的某些插件会干扰其中一个遗留系统(基于Ant)的构建过程的机会。作为记录,我确实记录了那些遗留系统的Eclipse环境,但是在修补生产错误时我没有时间搞砸Eclipse。


3

我将为不同的“组”项目使用单独的工作区。例如,您可能希望将您的主应用程序项目和单元测试项目组合在同一工作空间中。


有趣的是。我实际上将单元测试源文件夹放在同一项目中。
僵尸

@Zombies:例如,我在同一工作区中有一个Android项目和Android Test项目。测试项目只需要对实际应用程序的引用。
布莱恩丹尼

3

也许我不走运,但是Eclipse通常(每个月一次)在启动时死亡,通常在“ Initializing Java Tooling”阶段。推荐的解决方案似乎是创建一个新的工作区。如果您将所有项目都放在一个工作区中,这可能会很麻烦。我认为较小的工作空间可能意味着崩溃的可能性较小。


好一点,我冒着这样破坏一切的风险。几乎就像是一个鲜活的代码生态系统。
僵尸

2
您正在使用版本控制,不是吗?
meriton

也许可以的。澳大利亚的宽带比“发达”的世界落后了十年...
约翰

6
您不需要Internet即可进行版本控制,尤其是当您使用git或mercurial等分布式系统时。
Bad Sector 2010年

3

由于首选项是特定于工作区的,所以我倾向于打开一个巨大的工作区-我太懒了,无法在工作区之间同步某些设置(例如存储库...)。

另一方面,在一个工作区中打开太多项目可能会减慢Eclipse的速度-因此,我要做的至少就是关闭不使用的项目。我在Eclipse中管理许多相对短期的项目(最多一个月),这些项目驻留在相同的工作空间(在大多数情况下是相同的存储库)中,因此此设置为我提供了更大的灵活性。

如果您有多个相互关联的项目,则将它们放在同一工作区中。如果您可以标识始终一起使用的项目组,但是这些组是独立使用的,则将此类项目集放入不同的工作空间中。在那种情况下,那应该是逻辑结构。


1
这也是我的方法。我所有的Java项目仅保留一个工作区。其中有几个确实依赖于其他项目,所以这很方便,我每个人都有工作集。但是,我确实倾向于关闭我不积极参与的工作-使事情必须更易于管理。
elduff 2010年

3

在这种情况下,我们有多个项目,其中一些在分支上,坦率地说,将其保留在相同的工作空间中太不切实际了,而工作集却是在开玩笑。不幸。另外,打开您不使用的项目,可能会意外从完成菜单等中选择项目。容易出错。

对我们来说,真正的好功能是添加了Team-> Project Sets(我相信在Eclipse 3.3中),因为这使我们可以使用一个文件来描述组成整个应用程序的许多项目,可以将其与Team一起导入Eclipse中。 ->导入。需要一个给定的项目吗?从CVS中将其签出,在其中找到projectSet.psf文件,然后导入THAT。

事实证明,这对我们很好。


注意,此后我们已迁移到Maven,这使得管理多个相互交织的项目变得更加容易。
托尔比约恩Ravn的安徒生

3

每个项目类型都有一个工作区。例如:纯Java,Web应用程序,Python等。

原因是我可以共享相似的库而无需复制或指向它们。另外,为了避免混乱,我从Eclipse中关闭了无关的项目。


2

我将所有项目都放在一个工作区中,并使用工作集来管理它们。


1

由你决定!我总是发现保持不同项目的相关版本是一种更干净的方法,这些版本属于给定工作空间中的同一发行版。这样,只要需要在单独的发行版中引用某些内容,就可以在工作区之间切换,然后切换回当前发行版工作区。这也使我免于结帐或浏览存储库的麻烦。


1

您可能还需要记住,只要它们在不同的工作区中工作,就可以打开多个eclipse实例。不知道这对您是否重要,但我喜欢不时这样做。


在OSX中,任何使用open命令打开的应用程序捆绑包(finder的操作方式)仅允许一个正在运行的实例。但是,从命令行Eclipse.app/Contents/MacOS/eclipse运行,则可以运行多个副本
mmmmmm 2010年

1

我喜欢使用几个分离的工作空间(根据项目类型的不同而不同),这些工作空间从各个位置导入项目。易于移动,而无需创建大量类似的工作空间。也可以和我的SCM一起玩。


1

取决于您要处理多少个项目?如果您要处理多个项目,则我将使用相同的工作空间,因为如果使用多个工作空间,则很容易忘记什么地方,至少这令人沮丧。但是,我总是对不同的编程语言使用不同的工作区,以免混淆,当您在JAVA工作区时,您会认为JAVA:D

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.