maven随笔
2017-05-23 本文已影响0人
一点温柔
1、dependence
scope【默认为compile范围,】
当scope为compile时,会在编译的时候将依赖加入,打包的时候也会将依赖加入;
当scope为provided时,当我们在编译或者测试的时候会将依赖加入,但是打包的时候不会加入依赖【如servlet-api,因为其在tomcat中已经存在,再打包将会产生冲突】;
当scope为runtime时,在编译的时候儿不依赖,在运行的时候儿依赖【如jdbc连接包等】
当scope为test时,在测试的时候依赖,在编译和打包的时候儿不依赖【如junit,ubunit等】;
2、依赖传递
当scope为test的时候,依赖是不会被传递的;dbunite默认依赖为junite3.8.2
常见依赖问题:
场景1:
A依赖于包xxx-1.0
B依赖于包xxx-2.0
C依赖于A和B,那么是如何传递的呢?【答:其中A、B于包xxx为直接依赖,C于包xxx为间接依赖,当存在间接依赖关系的时候,先依赖谁就传递为谁的包】
总结:当依赖级别相同的时候儿,我们的依赖取先依赖的那个,当依赖级别不同的时候儿,我们获取的为依赖级别最短的那个
3、依赖排除
当存在依赖冲突的时候,最好使用exclusion排除依赖
。。。。。。。。。。。。。。。未完待续。。。。。。。。。。。。。。。。。