maven scope的汇总

1、自建 starter 的一些关于 maven 的记录。

可以减小 jar 包的大小,不做依赖传递

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
<!--    依赖 传递  true, 不传递。 默认是false-->
    <optional>true</optional>
</dependency>

控制 依赖的使用范围

常见的有 compile, provided, runtime, test, system 等

  • compile

    • 默认值
  • test

    • 仅参与测试环节,在编译、运行、打包时不会使用
  • runntime

    • 适用于运行和测试环节
  • provided -已提供

    • 在编译和测试的环境,和compile功能相似,但provide仅在编译和测试阶段生效,provide不会被打包,也不具有传递性。
  • system

    • 同 provided,但是 依赖 从 本地 获取

    • 结合systemPath 使用

    • <dependency>
        <groupId>sun.jdk</groupId>
        <artifactId>tools</artifactId>
        <version>1.5.0</version>
        <scope>system</scope>
        <systemPath>${java.home}/../lib/tools.jar</systemPath>
      </dependency>
      

参考:

https://zhuanlan.zhihu.com/p/325550529

posted @ 2022-09-02 13:53  小烽  阅读(19)  评论(0编辑  收藏  举报