0

我正在 Eclipse (OS X) 下开发依赖于库的应用程序。这使得以下内容:

  • 项目 A 使用库 L1、L2、L3
  • 项目 B 使用库 L2、L3
  • 项目 C 使用库 L1、L2、L3

我曾经只有一个工作区,其中包含项目 A、B、C、L1、L2、L3,这些库通常git clone来自其存储库。
然后我有:

~/projects/ProjectA
~/projects/ProjectB
~/projects/ProjectC
~/projects/Lib1
~/projects/Lib2
~/projects/Lib3

这已经工作了一段时间,但现在随着项目 A、B、C... 的发布和使用,项目可能不会使用相同版本的库......并且一切都变得过于复杂。

我查看了工作集,但我认为这不是我想要的。

我创建了一个新工作区,并再次克隆了库,这样我就有了:

~/projects/ProjectA/Project
~/projects/ProjectA/Lib1
~/projects/ProjectA/Lib2
~/projects/ProjectA/Lib3
~/projects/ProjectB
~/projects/ProjectC
~/projects/Lib1
~/projects/Lib2
~/projects/Lib3

所以 A 的库不会与 B 和 C 中使用的其他副本冲突。

问题是新工作区具有默认设置,而我所有的视角、键盘快捷键和其他东西都不见了。
我这样安排我的文件夹:

~/projects/EclipseSettings
~/projects/.metadata/.plugins/org.eclipse.core.runtime/.settings -> ~/projects/EclipseSettings
~/projects/ProjectA/.metadata/.plugins/org.eclipse.core.runtime/.settings -> ~/projects/EclipseSettings
~/projects/ProjectA/Project
~/projects/ProjectA/Lib1
~/projects/ProjectA/Lib2
~/projects/ProjectA/Lib3
~/projects/ProjectB
~/projects/ProjectC
~/projects/Lib1
~/projects/Lib2
~/projects/Lib3

如您所见.settings,我将初始工作区的文件夹移动到了一个新文件夹,EclipseSettings然后将.settings每个工作区的 符号链接到该 Eclipse 设置文件夹。

不工作。

例如,我已将command+分配M给 SVN 提交:

  • 如果我加载初始~/projects工作区,则键盘快捷键有效。
  • 如果我加载~/projects/ProjectA新工作区,则键盘快捷位于 Eclipse 设置的“键”部分内,分配给 SVN Commit,但它不起作用。当我使用该快捷方式时,没有任何反应。

为什么?org.eclipse.core.runtime/.settings除了定义我的工作区之外,还有其他文件吗?
此外,透视图不存在,Java Formatter 似乎消失了,它没有在 Save 操作中启用,而我确实在我的初始工作区启用了它......

我想知道我是否应该使用该工作区来管理我的项目,并且我想知道为什么我使用使用工作区/项目的 Eclipse 而 IntelliJ 似乎有更好的方式来管理所有内容。但我已经尝试切换并坚持使用 Eclipse。
也许我应该再给 IntelliJ 一次机会,但是我想先对此有一些反馈。

4

1 回答 1

2

不要将工作区相互嵌套。否则其中一个的更改将使另一个与文件系统不同步,从而在您下次打开该工作区时造成很多混乱。请注意,Eclipse 管理自己的工作空间中资源的状态,而不仅仅是文件系统的 1:1 副本。

不要符号链接(或以其他方式)共享元数据文件夹。很多人都试过了,但是还是不行。虽然 Eclipse 插件的大部分元信息都存储在元数据文件夹中,但没有必要这样做。这就是为什么许多插件还会将一些信息存储在项目的子文件夹、隐藏文件和其他地方。只要您也不能复制或符号链接所有这些信息,只需符号链接元数据文件夹就会导致不一致。

改用可用的工具:

  • 创建新工作区时,系统会要求您从当前工作区复制设置。去做!
  • 使用PulseYoxosWorkspace mechanic或其他第三方工具为您的工作区和项目创建“配置文件”。您可能想在 stackoverflow 中搜索这 3 个,以查看许多其他人也尝试过手动同步,但没有取得多大成功。
于 2013-03-23T12:28:06.307 回答