当前位置:  开发笔记 > Android > 正文

哪些Eclipse文件属于版本控制?

如何解决《哪些Eclipse文件属于版本控制?》经验,为你挑选了5个好方法。

哪些Eclipse文件适合置于源代码管理之下,显然除了源代码之外?

在我的项目中,具体来说,我想知道:

.metadata/*
project-dir/.project
project-dir/.classpath
project-dir/.settings/*

如果有任何相关的内容,请解释您的指南.



1> VonC..:

不应在源代码管理中管理元数据.他们主要包含相关数据工作区.

唯一的例外是.launchXML文件(启动器定义).

他们被发现

[eclipse-workspace]\.metadata\.plugins\org.eclipse.debug.core\.launches

并且应将它们复制到项目目录中:刷新项目时,这些配置将显示在"运行配置"对话框中.

这样,那些启动参数文件也可以管理到SCM中.

(警告:在" 运行/启动/启动配置"首选项面板中取消选中"删除关联资源时删除配置"选项:通常软删除项目以便再次将其导入 - 强制重新初始化eclipse元数据.但是这个选项,如果选中,将删除你的详细启动参数!)

project-dir/.project
project-dir/.classpath
project-dir/.settings/* 

应该在你的供应链管理(尤其是.project.classpath根据Eclipse文档).

目标是任何人都可以签出/更新他/她的SCM工作区并将Eclipse项目导入Eclipse工作区.

为此,您希望使用链接资源仅在.classpath中使用相对路径.

注意:如果project-dir引用"外部"项目目录,而不是在eclipse工作区下创建的目录,则更好.这样,两个概念(eclipse工作区与SCM工作区)明显分开.


正如ipsquiggle在评论中提到的那样,正如我在旧答案中提到的那样,您实际上可以将启动配置直接保存为项目目录中的共享文件.然后,所有启动配置都可以像其他项目文件一样进行版本控制.

(来自博客文章提示:从KD 创建和共享启动配置)

替代文字


一个(IMO)更好的工作流程来处理.lamunch文件的.metadata中的任何内容,是:当您编辑启动配置时,在`common`选项卡上,选择`另存为>共享文件`.这直接将它放在项目文件夹中,因此可以与项目的其余部分进行SCM.
@jfritz42:如果你做的本地和准时更改仅对你有效,那么暂时忽略那个版本化的`.project`只是为了你的工作区.但是不要剥夺所有其他用户可以在Eclipse工作区中快速导入的常见Eclipse项目定义,只是因为您碰巧有一个额外的定义只能满足您当前的需求.
谢谢.我会仔细研究这些链接,但我已经注意到,在你的第一个链接中,一个答案开始"肯定是",而下一个答案开始"绝对没有".谷歌充满了不同的,新手不友好的建议.我理解目标,但如何实现目标就是问题.我来自Xcode,其中源和用户选项与Xcode生成和编译器生成的输出完全分开,因此这个问题有一个简单的答案.对于Eclipse的新手来说,似乎这些文件是混合在一起的.我正在寻找一个简单易懂的答案
为什么.project应该在SCM中?例如,我想使用代码度量工具,该工具在启用时会导致.project中的更改.我不想强迫项目的所有用户.
我来自VisualStudio,我在这里第二次@garyp - 这真是一个热点 - 如果Eclipse需要制作临时和/或不必要的跟踪每个用户文件,它应该把它们放在其他地方,这样可以跟踪项目和构建定义,并且所有临时垃圾都不会妨碍.Eclipse团队在哪里没有更多的官方指导?(很明显,eclipse团队不进行单元测试[或者如果他们这样做,他们没有有效地做到]但至少告诉我他们使用源代码控制!XD)

2> pdemarest..:

我目前正在开发一个项目,我们在源代码管理下拥有.project和.cproject文件.我们的想法是,与库路径和链接指令相关的设置将在整个团队中传播.

在实践中它没有很好地工作,合并几乎总是回到冲突状态,需要在eclipse之外解除冲突,然后项目关闭并重新打开以使更改生效.

我不建议将它们保存在源代码管理中.



3> Diaa Sami..:

CDT配置文件对源代码控制不友好是没有价值的.有一个bug报告.cproject文件频繁更改并导致冲突,请参阅在存储库中共享cdt-project文件总是会导致冲突.


还应注意,.cproject文件包含配置信息,您不希望其他开发人员必须手动重新创建.啊.

4> 小智..:

有些项目,比如那些使用Maven的项目,比如基于POM生成.project文件.

也就是说,除此之外 - .metadata不应该在源代码管理中.根据您计划管理标准的方式,您的项目必须确定projectdir/.settings是否有效.如果您可以诚实地信任您的开发人员根据标准设置他们的环境,并且您不必为任何项目定制任何特殊的环境,那么您就不需要将它们放入.我,我建议专门配置每个项目.这允许开发人员在同一工作区中处理多个项目的内容,而无需来回更改默认设置,并且它使设置非常明确,覆盖其默认设置以匹配项目的标准.

只有困难的部分是确保它们都保持同步.但在大多数情况下,您可以将.settings文件从项目复制到项目.如果您在源代码管理中有任何特别不需要的内容,请执行相应的设置svn:ignore,如果您的SCM支持它.


我们使用Maven 1和2,如果你要求它只生成.project文件.即使你这样做,也是基于POM的内容,所以如果另一个开发人员已经为你做了那个步骤并将结果检查到版本控制,为什么不利用它呢?

5> Stijn de Wit..:

.classpath文件绝对是检查scm的一个很好的候选者,因为手动设置可能需要很多工作,并且新开​​发人员很难进入项目.确实可以从其他来源生成,在这种情况下,您将检查其他来源.

至于.settings,它取决于设置.这是一个灰色区域,但是一些设置几乎是强制性的,并且能够检查项目,在Eclipse中导入它并且设置好所有内容都很方便.

因此,在我们的项目中,我们维护了一个名为CVS.settings的.settings文件夹的副本,我们有一个ant任务将它复制到.settings.从CVS获取项目时,可以调用"eclipsify"ant任务将默认设置复制到新的.settings文件夹.配置项目开发人员所需的设置时,将这些设置合并回CVS.settings文件夹并将其提交给CVS.这样,在SCM中保存设置成为一个有意识的过程.它确实需要开发人员在签入大的更改时不时将这些设置合并到他们的.settings文件夹中.但这是一个非常简单的系统.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有