在工作区外使用eclipse项目(多用户)

时间:2012-08-06 08:45:43

标签: eclipse workspace multi-user

以下情况:

我们想在我们的eclipse项目中使用一个根文件夹。自从我看到, eclipse不支持多用户工作区(许多用户同时在同一个工作区),我正在寻找另一种解决方案。

随机我创建了一个"新项目"使用无默认位置,而不是我们在工作区外的位置(每个客户都有自己的工作区)。

Eclipse将在 {workspace} /。metadata / .plugings / org.eclipse.core.resources / .projects /

下生成

一个文件夹,它只包含有关项目位置和其他一些数据的信息(.safeable,.tree)。 因此,可以重命名项目,并自动刷新其他客户端。 在大多数情况下,它看起来并不那么糟糕。

我的问题: 我对此感觉不好。创建那些"链接的项目"通过源代码,我需要使用"内部包"。而且我不确定,如果这是正确的行为。

那么你们如何处理一个场景,一些用户需要在eclipse应用程序中共享二进制数据。 SVN和.git对二进制文件不太满意。

我感谢任何建议。感谢。

更新

我是如何解决问题的:

每个用户都有自己的工作区。除此之外,还有"中央工作区"。它只是一个普通的工作空间,但是从用户工作空间中的每个IP项目链接起来。

这是用于链接位于自己工作区外的IProject的源代码:

IProjectDescription description = null;
description = ResourcesPlugin.getWorkspace().loadProjectDescription(new Path(path +"/.project"));
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(description.getName());
project.create(description, IProject.FORCE, null);
if (!project.isOpen()) {
    project.open(null);
}

您应该在 WorkspaceJob。

中运行此代码

之后,您可以使用IProject,它们实际上并非位于您的工作区中,并且用户数不受限制。在这种情况下,您不能使用任何内部包。

1 个答案:

答案 0 :(得分:2)

使用Eclipse可以共享项目,但有一些重要的事项需要牢记:

Eclipse并不希望其他人修改项目中的文件。将编译器分配给项目时尤其如此。如果您有一个Java项目,那么有一个Java编译器,如果其他人更改了输出文件夹中的文件,这个编译器就会变得非常困惑。 从不共享具有编译器/构建器的项目。

另一种解决方案是将二进制数据放在文件系统上的共享位置,然后使用链接将它们导入到项目中。请参阅Creating linked resources的在线帮助。这不会复制文件,只会使资源出现在视图中。

因此,如果您需要查看文件,这种方法很有效,但是当项目中的代码需要访问它们时(例如,单元测试)它们没有帮助,因为这些链接纯粹是虚拟的:它们只存在于Eclipse UI。

最后,SVN和git都可以很好地应对二进制数据。当你签出/更新/提交时,他们可能需要大量内存,但如果数据没有改变,你应该完全没问题(除非数据大于1GB)。