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排除依赖

。。。。。。。。。。。。。。。未完待续。。。。。。。。。。。。。。。。。

上一篇下一篇

猜你喜欢

热点阅读