Java 在Eclipse中,如何拥有与项目相关的启动配置?

Java 在Eclipse中,如何拥有与项目相关的启动配置?,java,eclipse,version-control,launch,Java,Eclipse,Version Control,Launch,我通常有一个项目的多个副本,例如:主干的一个副本和上一个版本分支的另一个副本。为了清晰地将我的项目文件与Eclipse分开,它们将从Eclipse工作区之外的目录中的Subversion中签出 我希望使项目能够轻松地导入Eclipse,并遵循Eclipse的指示 问题在于.launch文件的项目名称是硬编码的。导入新项目时,如果项目与导出项目的名称完全相同,则启动文件将显示在“运行配置”菜单中。这禁止我拥有同一项目的两个版本 看起来唯一的方法是从Ant任务生成.launch和.project文件

我通常有一个项目的多个副本,例如:主干的一个副本和上一个版本分支的另一个副本。为了清晰地将我的项目文件与Eclipse分开,它们将从Eclipse工作区之外的目录中的Subversion中签出

我希望使项目能够轻松地导入Eclipse,并遵循Eclipse的指示

问题在于.launch文件的项目名称是硬编码的。导入新项目时,如果项目与导出项目的名称完全相同,则启动文件将显示在“运行配置”菜单中。这禁止我拥有同一项目的两个版本

看起来唯一的方法是从Ant任务生成.launch和.project文件,但是我没有看到任何人使用这个解决方案。也许我应该有多个工作区,并且项目总是使用相同的名称

最好的方法是什么


编辑:我将VonC标记为答案,但不要错过评论

我的建议是将工作区绑定到签出位置,然后您可以使用Subversion中相关项目的启动配置

我的目录结构如下所示:

{checkout root}
   |
   +code
   |
   -workspace
在您的情况下,这意味着主干和您签出的任何其他分支/标记的工作区。我还将所有项目保留在工作区之外。Subversion中的工作区目录为空;我只是从同级树递归地将项目引用添加到工作区。如果导出Eclipse设置也会有所帮助,因为您可以将它们重新导入到每个新的工作区中


我从一对IBM和Rational白皮书中获得了这种方法,该白皮书使用Eclipse和Rational ClearCase。除非您需要在同一个工作区中打开同一项目的多个版本,否则此操作应该有效。

请记住,.launch配置文件不必在您的工作区中。
它们可以位于您的
/.设置中,如我在中所述

这意味着您不能在eclipse工作区中导入同一项目的两个版本。
您需要单独的工作区(本身没有版本控制),每个工作区引用不同路径中的项目。
每个路径代表不同的工作树(如Subversion的不同工作目录)


OP补充道:

项目必须具有相同的名称,但项目签出目录可以具有任何名称

要使启动文件正常工作,必须使用变量
${workspace\u loc:ProjectName}
引用任何文件
可以使用如下路径引用Java文件:“
/ProjectName/src/package/MyFile.Java

这样,使用任何工具与subversion存储库交互都会更容易

我想让使用Eclipse的人生活得更轻松,但我不想强迫任何人使用它


我相信,常见的情况是,切换分支仍然会将您留在同一个项目中。这对我来说很有效。尽管如此,这是一个好问题……当然,问题是当我的工作区中有未提交的更改,并且必须在生产版本中修复某些内容时。当我使用C++时,我曾经有5个工作区:主干,当前编辑的主干,优化的主干,发布,优化发布。多次签出有助于提高我的工作效率,特别是当签出或构建过程缓慢时。感谢您的回答。我一直在测试这种方法。我的结论是,如果我从eclipse之外的工具(例如subversion命令行)签出项目,签出目录必须具有eclipse项目的确切名称。是吗?@neves:这是很有可能的,我所有的目录都是以eclipse项目名命名的。好吧,我可以让它有点相对性。项目必须具有相同的名称,但项目签出目录可以具有任何名称。要使启动文件工作,必须使用变量${workspace\u loc:ProjectName}引用任何文件。可以使用以下路径引用Java文件:“”/ProjectName/src/package/MyFile.Java“”。这样,使用任何工具与subversion存储库交互都会更容易。我想让使用Eclipse的人生活得更轻松,但我不想强迫任何人使用它。