以下情况:
我们想在我们的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,它们实际上并非位于您的工作区中,并且用户数不受限制。在这种情况下,您不能使用任何内部包。
答案 0 :(得分:2)
使用Eclipse可以共享项目,但有一些重要的事项需要牢记:
Eclipse并不希望其他人修改项目中的文件。将编译器分配给项目时尤其如此。如果您有一个Java项目,那么有一个Java编译器,如果其他人更改了输出文件夹中的文件,这个编译器就会变得非常困惑。 从不共享具有编译器/构建器的项目。
另一种解决方案是将二进制数据放在文件系统上的共享位置,然后使用链接将它们导入到项目中。请参阅Creating linked resources的在线帮助。这不会复制文件,只会使资源出现在视图中。
因此,如果您需要查看文件,这种方法很有效,但是当项目中的代码需要访问它们时(例如,单元测试)它们没有帮助,因为这些链接纯粹是虚拟的:它们只存在于Eclipse UI。
最后,SVN和git都可以很好地应对二进制数据。当你签出/更新/提交时,他们可能需要大量内存,但如果数据没有改变,你应该完全没问题(除非数据大于1GB)。