Maven命令行:依赖
1.依赖范围
标签的位置:dependencies/dependency/scope
标签的可选值:compile/test/provided/system/runtime/import
(1)compoile和test对比
(2)compile和provided对比
举例说明 什么叫有效!
(空间角度)
(时间角度)
部署到服务器(时间)有没有效,指的是将项目部署到服务器之后,此依赖是否还有效!
-----------
provided:已经提供的!
Tomcat提供了一些jar包,如servlet-api,不写provided,war包就会把servlet-api.jar带到服务器,可能会发生冲突
依赖的传递性
(1)概念:
a依赖b,b依赖c,那么在a没有配置对c的依赖情况下,a里面能不能直接使用此c?
(2)传递的原则
在a依赖b,b依赖c的前提下,c能否传递到a,取决于b依赖c时的依赖范围
- b依赖c时使用compile范围:可以传递
- b依赖c时使用test或provided范围,不能传递,所以需要这样的jar包时,就必须在需要的地方明确配置依赖才可以!
测试依赖的排除
(1)概念:
当a依赖b,b依赖c而且c可以传递到a的时候,a不想要c,需要在a里面把c排除掉,而往往这种情况都是为了避免jar包之间的冲突.
所以配置依赖的排出其实就是阻止某些jar包的传递,因为这样的jar包传递过来会和其他jar包冲突.
(2)配置方式
<dependency>
<groupId>com.tinstu.maven</groupId>
<artifactId>pro01-maven-java</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
<!--使用excludes标签配置依赖的排出-->
<exclusions>
<!--在exclude标签中配置一个具体的排出-->
<exclusion>
<!--指定要排出的依赖坐标(不需要填version)-->
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<exclusion>
</exclusions>
</dependency>
阅读剩余
版权声明:
作者:Tin
链接:http://www.tinstu.com/1115.html
文章版权归作者所有,未经允许请勿转载。
THE END