从隐食自动完成中"隐藏"一个maven工件

Sky*_*ton 5 java eclipse maven

由于我甚至不想开始进入的原因..我有一个看起来像下面的maven层次结构.简而言之,除了一个需要commonslang2的古老工件外,一切都需要commonslang3.

我们没有编译或运行时的问题,依赖项按预期工作.我们面临的挑战是发展时间.

我们希望确保团队中的每个人都使用commonslang3 API,但偶尔(因为古代工件和Eclipse自动建议),有人不小心使用了commonslang2 API.

通常,我们只会在POM中强制使用所需的版本,但是commonslang是一种特殊的雪花.comonslang2和commonslang3之间的包签名发生了变化,这意味着如果排除旧库,我们就会遇到编译失败.例如,

  • org.apache.commons.lang3.StringUtils
  • org.apache.commons.lang.StringUtils

我的问题是,我如何配置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)

Jus*_*KSU 1

在 Eclipse 中:窗口->首选项->Java->外观->类型过滤器

添加org.apache.commons.lang.*

因为您想要影响 IDE 的自动完成功能,所以您必须更改 IDE 中的设置。您可以导出首选项并与团队的其他成员共享。