问题:我们在3级POM树中有几十个Maven子项目(由m2eclipse管理),人们每两周都会继续添加和删除其中一些。由于并非所有新添加的项目在丢失时都会导致编译时错误,因此问题进一步复杂化。最终可能没有被放入OSGi容器中,因为人们忘记了正确导入它们而Eclipse由于某种原因不能自动知道它们的存在。
目前,人们必须观看一些邮件列表,每当有这样的事件时,他们必须去为根POM手动调用导入向导并添加缺少的项目或手动删除一些不需要的项目。移动/重命名是删除/添加的组合。
这一切都非常容易出错,我们希望以某种方式自动化/简化过程。
理想情况下,我们希望拥有以下工作流程: 1)同步 2)开火Eclipse 3)一些钩子来触发,它会根据最新的POM树分析开发人员的工作区(根POM是固定的并且是已知的) 4)某处应该有一些按钮: - 绿色,如果一切都是正确的 - 红色,如果没有 单击它应该自动删除不需要的项目(并更新Eclipse内部)并添加新项目(在静默模式下某种调用导入向导)。
现有功能是否可行?或者我们必须以某种方式扩展m2e?任何其他解决方案???
非常感谢任何帮助!
P.S。
我们知道我们遇到的这类问题可能是由于设计结构设计糟糕。但是,在紧张的发布周期中运行时,修复它并不容易。所以,我们需要一个临时解决方案。
答案 0 :(得分:1)
这让我觉得你正在解决一个错误的问题。我怀疑这样的东西会在m2e中得到开箱即用 - 除非有一天将每种类型放入其自己的模块中成为最佳实践。一段时间后,项目模块应该稳定,并反映可以改变但不经常改变的架构(仅限主要版本)。如果它变化太频繁,那么对设计决策的考虑就不够了。考虑将项目拆分为多个子项目,可以签出/克隆并独立工作。
同步更改时,只需检查是否添加/删除了模块 - 如果是,则在同步后只需逻辑删除然后导回现有的maven项目。