java - Eclipse M2E 更改 org.eclipse.wst.common.component

标签 java eclipse maven m2e

我在 Eclipse 中有一个多模块 Maven Java (WAR) 项目。它依赖于许多其他 Java 项目。我们将 .settings 目录 checkin 源代码管理,因为其中有许多手动建立的设置。

.settings 中的一个文件是 org.eclipse.wst.common.component,它也有手动建立的设置。但是,Eclipse 会根据开发人员在 Eclipse 中打开的底层 JAR 项目不断修改该文件。我相信它这样做是为了帮助完成这些 Artifact 的“工作区解析”。

但是,这种情况的结果是 Eclipse 不断地修改 org.eclipse.wst.common.component 并且开发人员不断地将其提交给源代码控制并相互争夺。将这些文件置于源代码控制之外是行不通的,因为其中有太多特定于每个项目的手动调整。

我猜这是 Eclipse 中的一个设计缺陷,它有一个将项目设置和用户设置结合在一起的文件!如果有人对如何更好地处理这个问题有任何见解,那就太好了。事实上,Eclipse-M2E 根本不适用于复杂项目的团队开发,除非每个开发人员都加载了完全相同的 Java 项目....

最佳答案

我同意那个特定文件有问题...如果它被损坏,工作区可能会崩溃,如果它丢失 - 什么都不会起作用。 但它不包含在重新导入项目时无法从头生成的任何内容......

我认为最好的解决方案是使用“完整”工作区 checkin 文件,然后确保忽略以后的更改。

如果您随后需要进行“真正的”更改,请加载整个工作区,执行您需要执行的任何操作,然后取消忽略该文件, checkin ,然后再次忽略它。

例如:

git update-index --assume-unchanged the-file
git update-index --no-assume-unchanged the-file

运气好的话,m2e 会弄乱 jar/项目引用,以便它与加载的项目相匹配。如果它没有自动执行,请更新项目定义。

关于java - Eclipse M2E 更改 org.eclipse.wst.common.component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41102963/

相关文章:

maven - 使用 "Unable to initialise extensions"构建 maven 项目时出现 "wagon-ssh"错误

java - 错误 500--内部服务器错误 java.lang.NoClassDefFoundError : javax/servlet/jsp/jSTL/core/Config

java - 如何获取某个IP地址的ping时间?

java - 在 java 中哪里可以找到已弃用项目的替代品?

c++ - 在整个项目中搜索 Eclipse CDT 中的包含项

java - Eclipse 首选项页面,标题为 Authorizing with Eclipse.org 的对话框

eclipse - 如何让我的 Maven Junit 测试打印出与 Eclipse JUnit 生成的相同的堆栈跟踪?

java - <?> 与 <T>

java - java/android中的不同日期

java - 尝试使用带有偏移量的 PyCryptodome AES ECB 解密