maven依赖之optional标签的使用场景

使用可选依赖

将依赖坐标的 元素的值设置为true,则代表这是一个可选依赖。

<project>
  ...
  <dependencies>
    <!-- declare the dependency to be set as optional -->
    <dependency>
      <groupId>sample.ProjectA</groupId>
      <artifactId>Project-A</artifactId>
      <version>1.0</version>
      <scope>compile</scope>
      <optional>true</optional> <!-- value will be true or false only -->
    </dependency>
  </dependencies>
</project>

使用optional依赖可以节省空间和内存

使用场景

当编写一个类库时,比如projectX,可能会包含很多功能,但是依赖projectX的项目projectA只会使用其中一部分功能,对于没有用到的功能,projectA不希望依赖无用功能的jar包。这时就需要projectX使用optional依赖。

projectX -> projectY(optional)

projectA -> projectX

如果projectA没有使用projectY相关的类,则projectY不会被打包到war包或fatjar。
如果projectA要使用所有的功能,则需要在自己的项目中显式的引入相关依赖。

参考:

introduction-to-optional-and-excludes-dependencies

猜你喜欢

转载自www.cnblogs.com/junejs/p/12686845.html