Maven依赖范围

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven依赖范围相关的知识,希望对你有一定的参考价值。

先看看Maven依赖的配置

<dependencies>  
     <dependency>  
           <groupId>....</groupId>  
           <artifactId>......</artifactId>  
           <version>........</version>  
           <type>......</type>  
           <scope>....</scope>  
           <optional>...</optional>  
           <exclusions>  
                ..........  
           </exclusions>  
     </dependency>  
      ............  
</dependencies>  
当中:

groupId,artifactIdversion:依赖的基本坐标(坐标就不描写叙述了,上过学的都知道)

type: 依赖的类型,默认值是jar(知道有即可。非常少用忽略)

scope: 依赖的范围(这个重要。以下继续讲)

optional: 标记依赖是否可选

exclusions: 排除传递性依赖


依赖范围:

        说白了就是控制依赖与编译classpath,測试classpath,执行classpath的关系。

依赖范围參数:

        compile: 编译依赖范围,对于编译、測试、执行三种classpath都有效。默认情况使用该依赖范围。

        test: 測试依赖范围,仅仅对于測试classpath有效。仅仅有在编译測试代码及执行測试的时候才须要,eg:JUnit

        provided: 已提供依赖范围,仅仅对于编译和測试classpath有效。仅仅有在编译和測试项目的时候才须要。eg:servlet-api

        runtime: 执行时依赖范围。仅仅对于測试和执行classpath有效。仅仅有在执行測试或者执行项目的时候才须要,eg:JDBC

        system: 系统依赖范围。(到如今为止我还没实用过,忽略好了)

有图看的才爽:

技术分享










以上是关于Maven依赖范围的主要内容,如果未能解决你的问题,请参考以下文章

Maven依赖范围

5maven的依赖和依赖范围

[Maven实战]依赖配置与依赖范围

maven的依赖范围

两个不同范围的 Maven 依赖项

maven生命周期和依赖的范围