说明
optional 是Maven依赖的一个选项,表示 该依赖是可选的
optional的值为true:表示可选,项目之间依赖不传递optional的值为false:表示传递依赖不设置optional,默认是
false
例子
如上图,假设有3个project:
- A project
- B project依赖A project
- C project依赖B project,但是 C project不依赖A project
此时在 B project 的 pom.xml 中配置依赖A project时就加上<optional>true</optional>,如下:
<dependency>
<groupId>......</groupId>
<artifactId>A project</artifactId>
<optional>true</optional>
</dependency>
在 C project 的 pom.xml 中配置依赖B project时,就不会依赖 A project,即:依赖不会传递。否则会自动依赖 A project的jar包
例子
配置springboot热部署时:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
配置lombok时:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
感谢:
https://blog.csdn.net/zwt0909/article/details/53221252
