假如B引用C依赖的时候没有设置optional,那么A是可以使用C依赖的。 假如B引用C依赖的时候将optional标签设置为了true,那么在A当中就无法使用C依赖相关的方法,并且A调用B依赖的方法,而B依赖方法使用到了C,这时候会报找不到C依赖下的类,因为C不参与A的打包。 回到顶部 二、依赖传递代码演示 (1)如下是一个父子聚合...
在Maven中,optional标签是一个重要的依赖属性,它允许开发者在项目中引入可选的依赖。通过合理地使用optional标签,可以更好地控制项目的构建和依赖关系,提高项目的灵活性和可维护性。一、Optional标签的作用Optional标签在Maven中主要用于标记依赖项是否可选。当一个依赖项被标记为可选(optional)时,它不会被传递给依赖它...
请注意,如果一个可选依赖项被标记为必需(即没有设置optional属性或设置为false),则它将被视为必需的依赖项,并传递给子模块或父模块的依赖项解析过程。总结:通过合理使用scope和optional标签,可以更好地控制项目的依赖关系。Scope标签可以帮助您定义依赖项的作用范围,确保它们在适当的阶段被包含或排除。Optional标签允许...
使用optional依赖可以节省空间和内存 使用场景 当编写一个类库时,比如projectX,可能会包含很多功能,但是依赖projectX的项目projectA只会使用其中一部分功能,对于没有用到的功能,projectA不希望依赖无用功能的jar包。这时就需要projectX使用optional依赖。 projectX -> projectY(optional) projectA -> projectX 如果proj...
是指依赖是否可选,默认false
maven中scope标签详解。compile provided test runtime system import区别、依赖传递、可选依赖<optional>,1、依赖范围与ClassPath的管理关系2.依赖的传递性1、当第二直接依赖(B->C)的范围是compile、runtime的时候,传递性依赖与第一直接依赖(A->C)的范围一致
optional依赖不能传递到下个项目 假如你的Project A的某个依赖D添加了true(默认为false),通过pom依赖Project A的时候,D不会被传递依赖进来。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <!-- 防止将devtools依赖传递到...