美文网首页
【maven】依赖关系

【maven】依赖关系

作者: 嘻洋洋 | 来源:发表于2018-07-23 11:10 被阅读0次

    1Dependency中 Scope 的作用

    用来限制Dependency的作用范围的, 影响maven项目在各个生命周期时导入的package的状态。

    • compile
      默认的scope,范围指的是编译范围有效,在编译和打包时都会将依赖存储进去。而且,这些dependencies 会传递到依赖的项目中。
    • provided
      跟compile相似,但是表明了dependency 由JDK或者容器提供,在编译和测试的过程有效,最后生成war包时不会加入,同时没有传递性。诸如:servlet-api,因为servlet-api,tomcat等web服务器已经存在了,如果再打包会冲突 。
    • test
      指的是测试范围有效,在编译和打包时都不会使用这个依赖。
    • runtime
      在运行的时候依赖,在编译的时候不依赖 。

    2.关于依赖传递性

    A,B,C三个项目的依赖关系:A-B-C 。A为工具类JAR包,B为业务类JAR包,C为对外的发布包War。

    • 因为依赖传递性,C虽然同时使用A和B的jar包,但是在POM文件配置只需要设置依赖B(B也依赖A)。
    • 因为依赖传递性,如果A包发生变化后,只需要installA包,B包不需要也install。

    3. 实际上遇到的情况

    servlet-api 包因为使用provided,无法进行依赖传递,因此每个包都需要设置此依赖。

    相关文章

      网友评论

          本文标题:【maven】依赖关系

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