我一直想知道这些是什么。我已经阅读了关于此的Maven文档,我认为我并不理解它。有人可以解释一下吗?感谢。
答案 0 :(得分:2)
当不可能(无论出于什么原因)将项目拆分为子模块时,使用可选的依赖项。我们的想法是,某些依赖项仅用于项目中的某些功能,如果不使用该功能,则不需要。理想情况下,这样的功能将被拆分为一个依赖于核心功能项目的子模块......这个新的子项目只有非可选的依赖项,因为如果你决定使用子项目的功能,你需要它们。
但是,由于项目无法拆分(无论出于何种原因),因此这些依赖项被声明为可选项。如果用户想要使用与可选依赖项相关的功能,则必须在自己的项目中重新声明该可选依赖项。这不是解决这种情况最明确的方法,但是可选的依赖关系和依赖关系排除都是止损解决方案。
参考:http://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html