我很快就会检查新Java项目的第一次提交.我使用Eclipse Ganymede,一堆插件让事情变得更容易一些.
以前我一直参与检查整个Eclipse项目的项目.在结账后获取项目设置非常方便.然而,这种方法仍然没有问题:
我强烈怀疑某些Eclipse配置文件会在没有用户交互的情况下发生变化(从我使用Eclipse Europa时开始),使得它们在进行提交时显示为已更改(因为它们已更改,但不是交互式).
每个开发机器都有独特的设置,以及项目中所有开发人员的全局设置.保持这些分离很难.
有时,如果Eclipse版本与其他版本不同,Eclipse会生气并弄乱项目配置.另一种情况是它更改格式以便更新,如果提交则会混淆其他人的配置.
对于这个特定项目,我有另一个原因不提交项目文件:
可能有开发人员喜欢NetBeans,以后会加入该项目.但是他们不会在未来几个月内加入.
你是如何组织这个的?你如何检查版本控制以及你在外面做什么?在这种情况下,您认为最佳做法是什么?
至少你应该登记.project
和.classpath
文件.如果您团队中的任何人正在对外部JAR位置进行硬编码,.classpath
则应将其放在墙上并拍摄它们.我使用Maven来管理我的依赖项,但是如果你不使用maven,你应该使用一致的命名约定为外部JAR创建用户库.
之后,您需要通过插件来考虑插件上的内容.例如,我使用Spring工作,所以我总是办理登机手续.springBeans
,同样为CheckStyle办理登机手续.checkstyle
.
当涉及到.settings
文件夹中的配置时,它会变得有点棘手,但如果我更改项目的默认设置并希望它们与团队的其他成员共享,我通常会签入以下内容:
.settings/org.eclipse.jdt.ui.prefs - 它包含导入排序的设置
.settings/org.eclipse.jdt.core.prefs - 它包含编译器版本的设置
一般来说,我没有注意到Ganymede在没有修改项目首选项的情况下修改文件.
我建议使用maven,以便整个生命周期都在任何IDE之外.您可以在命令行上使用它轻松创建一个eclipse项目,如果它不是eclipse,您可以使用任何您想要的东西.它有它的怪癖,但在涉及依赖和构建管理时会带来很多苦涩.
在我们的世界中,我们检查整个Eclipse项目和整个并行但独立的Netbeans项目.我们对此的动机完全集中在"当我结帐时,我希望在之后立即进行功能配置." 这意味着我们必须做一些工作:
为每个主IDE(人们喜欢他们喜欢的东西)创建可运行的配置.这包括主类,工作目录,VM参数等.
为我们所有相关方案创建有用的启动脚本.
创建不会导致结账时间过长的编辑数据集(这是一个大项目).
当我们的新员工能够从Subversion检查项目到Eclipse并立即运行具有(小)实际数据集的功能系统时,这种理念值得现金(或至少劳动时间几乎更有价值)或者打扰他自己.
跟进:当他改变IDE时,这种"让新人生活更轻松"的理念得到了回报(他决定在使用Eclipse很长一段时间后尝试使用Netbeans并决定坚持使用它一段时间).根本不需要配置,他只是在Eclipse指向的同一目录中打开了Netbeans项目.经过的切换时间:大约60秒.
我只检查事情是由人类完成的,任何其他产生的东西(无论是否自动)都应该很容易再生,并且容易改变(如你所说).唯一的例外是当生成的文件很难(需要很多人为干预;))才能使其正确.这样的事情应该如何真正实现自动化.