2014-01-08 112 views

回答

2

可选的依赖关系在不可能的情况下使用(无论出于何种原因)将项目拆分成子模块。这个想法是,一些依赖项仅用于项目中的某些功能,如果不使用该功能则不需要。理想情况下,这样的功能将被拆分为一个依赖于核心功能项目的子模块......这个新的子项目将只具有非可选的依赖关系,因为如果您决定使用子项目的功能,则需要它们。

但是,由于该项目不能分裂(再次出于任何原因),这些依赖关系被声明为可选项。如果用户想要使用与可选依赖项相关的功能,他们将不得不在他们自己的项目中重新声明该可选依赖项。这不是处理这种情况的最明确的方式,但是再次,可选的依赖和依赖排除都是停滞不前的解决方案。

参考:http://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html