我在Eclipse中有一个多模块Maven Java(WAR)项目。这取决于一堆其他Java项目。我们将.settings目录检查到源代码管理中,因为那里有许多手动建立的设置。
.settings中的一个文件是org.eclipse.wst.common.component
,它也有手动建立的设置。但是,Eclipse会根据开发人员在Eclipse中打开的底层JAR项目不断修改该文件。我相信这样做有助于完成工作空间分辨率"那些文物。
然而,这种情况的结果是Eclipse不断地修改org.eclipse.wst.common.component
并且开发人员不断地将其提交给源代码控制并且相互争斗。将这些文件从源代码管理中删除是行不通的,因为那里有太多针对每个项目特定的手动调整。
我猜测Eclipse中的设计缺陷是有一个将项目设置和用户设置结合在一起的文件!如果有人对如何更好地处理这个问题有任何了解,那就太棒了。事实上,Eclipse-M2E根本不适用于复杂项目的团队开发,除非每个开发人员都完全加载了相同的Java项目....
答案 0 :(得分:1)
我同意该特定文件存在问题......如果它被破坏,工作区可能会崩溃,如果它丢失了 - 什么都行不通。 但它包含的任何内容都无法在重新导入项目时从头开始生成......
我认为最好的解决方案是使用" full"来检查文件。工作区,然后确保忽略未来的更改。
如果你需要做一个真实的"更改,加载完整工作区,执行您需要执行的操作,然后取消忽略该文件,签入,然后再次忽略它。
Eclipse Git:Team-> Advanced->假设未更改。
Git:Add a file to a git repository but ignore future changes on it
例如:
git update-index --assume-unchanged the-file
git update-index --no-assume-unchanged the-file
Mercurial:使用文件模板:Mercurial: How to ignore changes to a tracked file
Eclipse RTC:忽略
运气好的话,m2e会搞乱jar /项目引用,以便与已加载的项目相匹配。如果它没有自动执行,请更新项目定义。