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

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

    震惊

    震惊

编辑推荐
在Maven中有三大模块,分别是依赖、仓库、生命周期和插件,我们接下来下来介绍下依赖,为了方便起见
、Maven因为执行一系列编译、测试和部署运行等操作,在不同的操作下使用的classpath不同,依赖范围
先看看Maven依赖的配置 <dependencies> <dependency> <groupId>....</groupId
maven技术交流 扣扣群 379165311,群里面会不定期分享一些maven文章和教程,欢迎大家加入
1、Maven因为执行一系列编译、测试和部署运行等操作,在不同的操作下使用的classpath不同,依赖范围
首先需要知道,Maven在编译项目主代码(src/main/java目录下面打代码)的时候需要使用一套classpath(
最简单的依赖 依赖是使用Maven坐标来定位的,而Maven坐标主要由GAV(groupId, artifactId, version
相同依赖级别,先加入的先依赖 不同依赖级别,级别短的先依赖 version-->SNAPSHOT xxx-里程碑--&
NuGet已经发布1.4版了,它在1.3版的基础上做了改进,比如说,可以在解决方案级别进行包的管理,改进
NuGet已经发布1.4版了,它在1.3版的基础上做了改进,比如说,可以在解决方案级别进行包的管理,改进
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号