当前位置:首页 > 开发 > 编程语言 > 持续集成 > 正文

maven依赖范围

发表于: 2015-07-19   作者:bitcarter   来源:转载   浏览:
摘要: 1.test 测试的时候才会依赖,编译和打包不依赖,如junit不被打包 2.compile 只有编译和打包时才会依赖 3.provided 编译和测试的时候依赖,打包不依赖,如:tomcat的一些公用jar包 4.runtime 运行时依赖,编译不依赖 5.默认compile 依赖范围compile是支持传递的,test不支持传递 1.传递的意思是项目A,引用
1.test 测试的时候才会依赖,编译和打包不依赖,如junit不被打包
2.compile 只有编译和打包时才会依赖
3.provided 编译和测试的时候依赖,打包不依赖,如:tomcat的一些公用jar包
4.runtime 运行时依赖,编译不依赖
5.默认compile

依赖范围compile是支持传递的,test不支持传递
1.传递的意思是项目A,引用了项目B,那么项目B中依赖的jar包在项目A中会被依赖
2.项目A,引用了项目B,项目A也引用了项目C,现在是项目B中依赖XX1.1.jar,项目C中依赖了XX1.2.jar包,那么项目A最后依赖jar包是哪个?
     这里面有一个级别的问题,级别就是jar包1依赖jar包2,jar包2依赖jar包3,那么如果项目中引入了jar包1,且使用了jar3,那么这个jar包3对于这个项目来说就是间接依赖,依赖级别是2,项目中使用jar包1,这个级别是0
      回到最初问题,A项目引用了B和C,那么XX.jar包对A来说依赖级别是2,这时候A中的XX.jar包就是先引用了那个项目,jar就是哪个。
3.排查一些依赖
  在<dependency>标签内添加<exclusions>标签就可以排查一些jar
4.总结,如果A项目中也引用了XX.jar包,最后依赖的就是A中加入的,因为A中的级别是0。级别相同取版本最近的,级别不相等取级别小的

maven依赖范围

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号