我对两者的理解是:
<scope>
- “使用此依赖关系@ runtime,compile,test etc
”
<optional>
- “避免提取传递依赖关系,不要将其用于编译目的”
如果我错了,请纠正我。另外,请让我知道何时使用<optional>
以及为什么(它的好处)。
非常感谢
答案 0 :(得分:1)
在文档(粗体部分)
中很好地描述了这一点当不可能(无论出于什么原因)将项目拆分为子模块时,使用可选的依赖项。 这个想法是,某些依赖项仅用于项目中的某些功能,如果不使用该功能则不需要。理想情况下,这样的功能将被拆分为一个依赖于核心功能项目的子模块......这个新的子项目只有非可选的依赖项,因为如果你决定使用子项目的功能,你需要它们。
依赖范围用于限制依赖项的传递性,还用于影响用于各种构建任务的类路径。