eclipse - 在工作空间外使用 eclipse 项目(多用户)

标签 eclipse workspace multi-user

以下场景:

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

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

Eclipse 将在{workspace}/.metadata/.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,这些 IProject 并不真正位于您的工作区中,并且具有无限的用户数。在这种情况下,您不使用任何内部包。

最佳答案

可以使用 Eclipse 共享项目,但您需要记住一些重要的要点:

Eclipse 不希望其他人修改项目中的文件。当编译器被分配给项目时尤其如此。如果您有一个 Java 项目,则有一个 Java 编译器,如果其他人更改了输出文件夹中的文件,则该编译器会感到非常困惑。 从未共享具有编译器/构建器的项目。

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

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

最后,SVN 和 git 都可以很好地处理二进制数据。当您 checkout /更新/提交时,它们可能需要大量内存,但如果数据没有更改,则应该完全没问题(除非数据 > 1GB)。

关于eclipse - 在工作空间外使用 eclipse 项目(多用户),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11825032/

相关文章:

matlab - 在Matlab中保存未知工作空间的工作空间

eclipse - 禁用每个工作区的 Eclipse 插件

linux - 如何让 GNU-Screen 为所有用户共享 1 个 screen ?

ms-access - MS Access (JET) 是否适合多用户 Access ?

java - 如何在编辑行时处理 JTable 的传入数据?

java - 无法解析 com.fasterxml.jackson.core.JsonGenerator 类型。它是从所需的 .class 文件间接引用的

eclipse - 通过 Eclipse 运行 JUnit

android - 安装 ADT 插件 17

eclipse:显式保存项目/工作空间

java - 用于软件指标的 Eclipse 插件 - 工作区级别摘要