自动配置Eclipse工作空间

5
我有一个 Eclipse 工作区,包含了 15 个不同的 Java 项目。为了配置 Eclipse 工作区,每次我都需要手动添加 Java 项目,并在 Java 构建路径中添加依赖和引用。每次添加所有项目并解决依赖关系都变得繁琐且重复。我查看了每个项目内部的 .classpath 文件,该文件存储了依赖和引用信息。我想要自动化这个重复的过程。是否有人尝试过这样做?任何意见都将很有帮助。
我不需要重复添加同一个项目,但通常需要创建一个新的 Eclipse 工作区,以进行新代码更改和交付(我无法在当前工作区中进行某些更改)。简单来说,例如,如果有人需要反复创建 Eclipse 工作区,或者多个人需要为他们的工作创建相同的工作区,我们如何减少手动工作量呢?

你什么时候需要在新机器上做这个? - sudmong
你能详细说明为什么需要多次添加同一个项目吗? - Jacob
我不需要重复添加相同的项目,但经常需要创建一个新的eclipse工作区,以进行新代码的更改和交付(我无法将一些更改应用到当前的工作区)。简单来说,如果某人需要一遍又一遍地创建eclipse工作区,或者多个人需要为他们的工作创建相同的工作区,我们如何减少手动工作量呢? - auto26
我只想说,我完全理解这个问题。在工作中,我们经常遇到这种情况,比如当你换电脑或有新员工时,你必须一次又一次地重新导入所有的项目。 - clamp
6个回答

1

我还有点不确定你的动机,但我会假设你所说的“新代码更改和交付”是指“同一代码库的不同版本/分支”。出于这个目的和许多其他原因,如果你没有使用像SVNGit这样的源代码控制工具,请考虑使用。这些工具是无价的,而且还是免费的。

Eclipse

我认为这不是你问题的技术部分,但为了完整性,我想补充一下。如果你正在实施以下技术,拥有一个“完全加载的Eclipse”也很方便。我在某个网络驱动器上保留了一个“完全加载的Eclipse”,其中预装了一些插件,以便新加入团队的人不必下载/安装插件。这并不难做,因为Eclipse不需要“安装”。你只需将Eclipse文件夹复制到所需位置并运行即可。个人喜欢包括源代码控制, 代码风格, 代码覆盖率代码度量等插件,但你应该包括在项目中经常使用的任何内容。

工作区

复制现有工作区(不包括任何项目,稍后我会解释)的方法很简单。只需将 .metadata 文件夹从一个现有的工作区文件夹复制到一个空文件夹中,该空文件夹将成为您的新工作区文件夹。当您启动 Eclipse 时,只需选择新工作区文件夹,您将拥有与其他工作区相同的所有首选项。

我以前用过这种技术,这样当其他人加入项目时,他们可以获取来自网络驱动器上的“干净工作区”副本,帮助他们快速启动。最好,“干净工作区”不应具有任何仅是个人偏好的首选项,例如完全按您喜欢的方式设置的透视图设置,而只应具有诸如 Ant 全局属性、编译器兼容级别、预制常用外部工具和运行配置等首选项。

项目

对于项目本身,我建议将它们包括 Eclipse 的 .project 和 .classpath 文件一起检入源代码控制。SVN 插件(subclipse)使这个过程非常容易。当有人加入你的项目时,他们只需要在他们的新“干净工作区”中将它们作为项目检出,这也非常容易。由于你正在检出的项目已经有了 .project 和 .classpath 文件,所有依赖关系已经设置好了!只需确保所有 jar 包和任何其他依赖项都与项目一起检入即可。

工作区设置程序

  1. 复制“完全加载的 Eclipse”。
  2. 复制“干净工作区”。
  3. 将项目检出到该工作区。

就是这样!你的新成员应该已经准备好了!

多个代码分支

现在,如果我正确地假设您所说的“新代码更改和交付”是指“同一代码库的不同分支”,那么为不同分支创建工作区只需按照相同步骤操作,但要检出所需的修订版或分支,而不是从主干获取最新版本。如果您不太明白我的意思,请阅读有关源代码控制的内容。

感谢您抽出时间来做这件事,我曾经参与过的项目中,设置环境可能需要一整天的时间...


@Anon 同意。除了在 Eclipse 中构建项目外,最好还有其他构建项目的方式。这是 持续集成 所必需的。 - Gyan aka Gary Buyn
@Gary,感谢分享这些信息。这给了我一个很好的起点。我正在使用 Rational Clearcase 进行源代码控制,并使用快照视图将源文件复制到用户机器上。因此,我需要进一步探索以下内容:1)如何修改每个项目的 .classpaths 以更新依赖项。我认为我知道如何做到这一点。2)如何将项目加载到工作区。目前,我手动添加指向创建的快照视图的 Java 项目。 - auto26
很高兴能够帮忙。1)如果您将整个项目文件夹(包括.project和.classpath文件)包含在源代码控制中,您就不必手动修改它们。2)您只需要将项目文件夹(同样包括.project和.classpath文件)签出到本地计算机,并使用Eclipse导入项目向导进行导入即可。 - Gyan aka Gary Buyn
@auto26 我不熟悉 Rational Clearcase 的术语,但我认为你所说的“快照视图”在一般的源代码控制术语中被称为“工作副本”。如果您对一般术语不熟悉,请查看此维基百科文章。我已经尽量保持使用一般术语的一致性。 - Gyan aka Gary Buyn
@Gary 快照视图可以简单地描述为...它在用户机器上创建源文件的副本。我尝试将.project和.classpath文件签入源代码控制。但是这种方法的挑战在于每个用户都会在其机器上创建快照视图(源文件的副本),路径不是预定义的。在.classpath文件中,路径非常重要,因为它们可能会根据用户机器而改变。 - auto26
@auto26 是的,那肯定是一个“工作副本”,也就是你用来工作的文件副本。你在classpath中使用绝对路径吗?如果你的所有依赖项都在你的项目中,这是不必要的。我在工作中使用这种技术,在Ubuntu和Windows上检出了相同的项目,路径显然不可能相同,而无需更改.classpath。 - Gyan aka Gary Buyn

1

也许有点晚了,但是我遇到了同样的问题,并在Eclipse市场中找到了一个工具,可以帮助管理不同分支、新开发人员或其他原因下的Eclipse设置和启动。

这个工具叫做yatta

通过它,您可以创建基于当前运行Eclipse的所有工具、插件、工作空间、CSM存储库等的配置文件。

这些配置文件可以导出到yatta配置文件中心,可以是公共的或私有的,稍后可以与不同的开发人员共享并导入和启动。


0

你没有说你是否使用Eclipse以外的构建工具,如果没有的话,你应该使用。

Eclipse能够解析Ant文件来发现源目录和库。而Maven和Gradle都可以为你生成Eclipse项目文件进行导入。

从长远来看,使用构建工具意味着你可以轻松地构建和部署项目,而不需要依赖于Eclipse。对于新团队成员来说,这将更容易地处理项目,因为他们不需要弄清楚所有的依赖关系。

如果你还没有专业人员,我建议使用Maven。它很容易设置一个基本的Java构建脚本,并且其依赖管理功能在我看来比其他替代方案更好。然而,它会强制你按照它的方式做事情,特别是源树布局方面。


我需要更深入地探索以下内容:1)如何修改每个项目的.classpaths以更新依赖项。我认为我知道如何做到这一点。2)如何将项目加载到工作区。目前,我手动添加指向创建的快照视图的Java项目。关于Maven,我需要更深入地了解。听起来是一个很好的学习材料。 - auto26

0

你应该真正了解构建工具,比如Maven、Ant等。它们可以自动为你生成所需的类路径变量,并且还可以做很多其他事情。


需要更深入地探索以下内容:1)如何修改每个项目的.classpaths以更新依赖项。我认为可以使用Ant来完成这个操作。2)如何将项目加载到工作区。目前,我手动添加指向创建的快照视图的Java项目。关于Maven,我需要更深入地了解。听起来是一个很好的学习材料。 - auto26

0
如果您正在Eclipse中从CVS / SVN检出项目,则可以创建一个团队项目集。这实质上是一个XML文件,其中包含项目列表及其源存储库路径。
它可以通过“文件|导出|团队|团队项目集”进行导出,并可以通过“文件|导入|团队|团队项目集”导入到另一个工作区。
有关此功能的更多信息,请参见Javalobby上的链接

我想知道团队项目集只能在源代码仓库位于SVN或CVS的情况下才能工作。我正在使用Rational Clearcase并创建快照视图,该视图将源文件复制到我的机器上。 - auto26
很棒,我不知道那个功能,但我一定会去看看。 - Gyan aka Gary Buyn

0

使用Vagrant很容易自动化设置整个桌面开发环境。

请参阅我提供的类似问题的答案在这里,其中包含自动检出Maven项目、创建Eclipse工作区并导入项目的脚本链接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接