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>

 

 

 

阅读剩余
THE END