Maven依赖

王朝学院·作者佚名  2016-05-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

Maven依赖可传递的依赖:

1.具体调用哪个版本?最短依赖长度的那个

如:A -> B -> C -> D 2.0 , A -> E -> D 1.0,那么调用D 1.0

为了避免这种情况,可以直接定义 A -> D 2.0,也就是说,自己显式定义的那个依赖总是先调用,无论版本高低

2.如果不声明版本?会默认最新版

3.排除某个依赖,如 A -> B -> C,A可以显式排除对 C 的依赖

<dependency> <groupId>group-a</groupId> <artifactId>artifact-a</artifactId> <version>1.0</version> <exclusions> <exclusion> <groupId>group-c</groupId> <artifactId>excluded-artifact</artifactId> </exclusion> </exclusions> </dependency>

4.可选依赖,如 B -> C,但声明为可选,在 A –> B 的时候就不会再依赖 C ,相当于被默认排除

当然也可以显式添加对 C 的依赖,二者毫无关系

5.依赖的作用范围 scope:

compile(默认,可省) PRovided,会由JDK或WebServer等来提供,如 Servlet API ,编译时需要,不会传递 runtime,用于运行时,编译时不需要,不会传递 test,用于测试,不会传递 system,表示会显式提供这个,不用到代码库中找 ,编译时需要,不会传递 import 只用于 <dependencyManagement> 的pom,不影响传递 <dependencies> <dependency> <groupId>sun.jdk</groupId> <artifactId>tools</artifactId> <version>1.5.0</version> <scope>system</scope> <systemPath>${java.home}/../lib/tools.jar</systemPath>自己指定 </dependency> </dependencies>

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航