Sky*_*ton 5 java eclipse maven
由于我甚至不想开始进入的原因..我有一个看起来像下面的maven层次结构.简而言之,除了一个需要commonslang2的古老工件外,一切都需要commonslang3.
我们没有编译或运行时的问题,依赖项按预期工作.我们面临的挑战是发展时间.
我们希望确保团队中的每个人都使用commonslang3 API,但偶尔(因为古代工件和Eclipse自动建议),有人不小心使用了commonslang2 API.
通常,我们只会在POM中强制使用所需的版本,但是commonslang是一种特殊的雪花.comonslang2和commonslang3之间的包签名发生了变化,这意味着如果排除旧库,我们就会遇到编译失败.例如,
我的问题是,我如何配置maven/Eclipse,在编译期间根据需要使用commonlang2但不在Eclipse类autosuggest列表中填充它?我想要的最终状态是有人输入'stringuti'+ ctrl + space,他们看到的唯一选项是commonslang3.我知道每个开发人员都可以通过(Window-> Preferences-> Java-> Appearance-> Type Filters)删除单个类,但由于两个原因,这不是一个可行的解决方案:1)这是一个拥有频繁更改资源的大型团队. 2)我需要移除整个工件,就像数百个类一样.
示例树:
MyWar
-- MyModuleJar1
-- ...
-- MyModuleJar2
-- LibA
-- commonslang
-- ...
-- LibB
-- commonslang3
-- ...
-- LibC
-- commonslang3
-- ...
-- ...
Run Code Online (Sandbox Code Playgroud)
在 Eclipse 中:窗口->首选项->Java->外观->类型过滤器
添加org.apache.commons.lang.*
因为您想要影响 IDE 的自动完成功能,所以您必须更改 IDE 中的设置。您可以导出首选项并与团队的其他成员共享。