美文网首页
maven依赖范围

maven依赖范围

作者: 周紫一 | 来源:发表于2018-01-01 12:44 被阅读23次

Maven因为执行一系列编译、测试和部署运行等操作,在不同的操作下使用的classpath不同,依赖范围就是用来控制依赖与三种 classpath(编译classpath、测试classpath、运行classpath)的关系。

1.Maven有以下几种依赖范围:

compile:
      编译依赖范围(默认),使用此依赖范围对于编译、测试、运行三种 classpath 都有效,即在编译、测试和运行的时候都要使用该    依赖jar包;
test:

测试依赖范围,从字面意思就可以知道此依赖范围只能用于测试classpath,而在编译和运行项目时无法使用此类依赖,典型的是JUnit,它只用于编译测试代码和运行测试代码的时候才需要;]

provided:

此依赖范围,对于编译和测试classpath有效,而对运行时无效;

runtime:
 运行时依赖范围,对于测试和运行classpath有效,但是在编译主代码时无效,典型的就是JDBC驱动实现;
system:
系统依赖范围,使用system范围的依赖时必须通过systemPath元素显示地指定依赖文件的路径,不依赖Maven仓库解析,所以可能会造成建构的不可移植

实例:

        <dependencies>  
            <dependency>  
                <groupId>javax.sql</groupId>  
                <artifactId>jdbc-stdext</artifactId>  
                <version>2.0</version>  
                <scope>system</scope>  
                <systemPath>${java.home}/lib/rt.jar</systemPath>  
            </dependency>  
        <dependencies></span>  

依赖传递:

image.png

特别指明:

runtime运行时依赖范围,对于测试和运行classpath有效,但是在编译主代码时无效

常见错误

image.png
com.ziyi.www.Test cannot be cast to javax.servlet.Servlet:类型转换错误,实则是找不到servlet,原因是已经加入了servlet-api.jar,但是同时Tomcat服务器里面也有servlet-api.jar------------两个jar包冲突导致jar包丢失(指运行时),因此无法发生类型转化

解决方式:添加依赖范围

image.png

相关文章

  • maven依赖范围

    Maven因为执行一系列编译、测试和部署运行等操作,在不同的操作下使用的classpath不同,依赖范围就是用来控...

  • Maven依赖范围

    Maven的依赖范围就是用来控制与编译、测试、运行三种classpath的关系。 Maven有下面几种依赖范围: ...

  • maven

    maven的依赖范围 依赖范围是用来控制依赖与3种classpath(编译classpath,测试classpat...

  • Maven开发笔记(一)—— Maven中的依赖作用范围(sco

    1.Maven中的依赖作用范围概述 Maven中使用 scope 来指定当前包的依赖范围和依赖的传递性。常见的可选...

  • Maven笔记—— 依赖作用域 scope

    1.Maven中的依赖作用范围概述 Maven中使用 scope 来指定当前包的依赖范围和依赖的传递性。常见的可选...

  • 二、maven 入门

    1.依赖范围 maven 提供三种依赖范围: 编译classpath 范围、测试classpath 范围、运行时c...

  • maven 依赖范围管理

    Dependency Scope 在POM 4中,中还引入了 ,它主要管理依赖的部署。目前...

  • Maven scope依赖范围

    一、Maven scope依赖范围概览 Maven的生命周期存在编译、测试、运行这些过程,那么显然有些依赖只用于测...

  • Maven入门知识4

    依赖范围: :依赖的范围maven中提供了三种classpath:编译、测试、运行给Junit设置 test 限制...

  • Maven坐标和依赖

    摘要: Maven,坐标,依赖,依赖传递,依赖范围Maven的一大功能是管理项目依赖,为了能自动化解析任何一个ja...

网友评论

      本文标题:maven依赖范围

      本文链接:https://www.haomeiwen.com/subject/pzctnxtx.html