2012-08-06 70 views
2

以下情形:工作区(多用户)之外使用Eclipse项目

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

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

Eclipse将{}工作区下生成/。元/ .plugings/org.eclipse.core.resources/.projects/

,只是保存有关项目的位置和其他一些信息的文件夹数据(.safeable,.tree)。 因此,可以重命名一个项目,并自动刷新其他客户端的项目。 大多数情况下,它看起来并不那么糟糕。我的问题: 我有一个不好的感觉。要通过源代码创建这些“链接的项目”,我需要使用“内部包”。而且我不确定,如果这是正确的行为。

因此,如何处理一个场景,其中一些用户需要在eclipse应用程序中共享二进制数据。 SVN和.git对二进制文件不太舒服。

我欣赏任何建议。谢谢。

更新

我该如何解决了这个问题:

每个用户都有自己的工作区。除此之外,还有“中央工作区”。这只是一个普通的工作空间,但是用户工作空间中的每个IProject都从哪里连接起来。

这里的源代码,链接,该链接位于自己的工作区外的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的工作空间,这些工作空间并不在无限用户的范围内。在这种情况下,你不使用任何内部软件包。

回答

2

共享项目是可能的食,但也有,你需要记住的一些要点:

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

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

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

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

+0

SVN/GIT不是一个机会。二进制文件会经常更改,以便存储库将会增长和增长。所有签入/结帐的表现都会受到影响。 共享项目的外观很好,我会检查它们。在这种情况下,我们不使用编译器。 我们需要通过代码进行访问,所以链接的资源不合适。 您对我的“解决方案”有何看法? 祝你好运 – Timo 2012-08-07 06:25:20

+0

为什么你需要Eclipse来查看文件?你如何在Eclipse中定义一个指向包含数据的文件夹并使用它的变量? – 2012-08-07 08:03:27

+0

我需要他们作为IResources。已经有很多代码了,我不想重写。这是典型的日食方式。 – Timo 2012-08-07 08:05:47

相关问题