假设存在依赖关系 A 依赖 B,B 依赖 X 或 Y,B 对于 X 和 Y 的依赖是可选依赖。A ⇒ B,B ⇒ X(可选),B ⇒ Y(可选),可选依赖不会得到传递,换句话说选择 X 或者 Y,对于 A 都不会有任何影响。
在Maven 依赖中有提到,将依赖声明为可选依赖,需要在依赖坐标中添<optional>true</optional>
即可。
当需要指定所使用的依赖时,需要在外层声明需要使用的依赖,上面的例子就需要在 A 中引入 X 或者 Y 的依赖。在理想的情况下,尽量避免可选依赖的使用。