我有一个项目有 N 个依赖项,这些依赖项都依赖于某个库 A(比如 commons-logging),我想使用其他一些库 B(比如 jcl-over-slf4j,它被称为 commons-logging 的替代品) 作为该库的替代品,因此在任何情况下都始终使用 B,而 A 根本不会包含在项目中。
我知道处理这种情况的唯一方法是将 B 添加为显式依赖项,然后为 N 个库中的每一个添加一个排除项,表示不要引入 A。这似乎与声明性的精神背道而驰,更不用说它是疯狂的了如果 A 是常用的东西(如 commons-logging),则重复。有没有办法说,“只要有任何东西需要 A 作为传递依赖,就给它 B”?