对于依赖的传递而言,主要是针对compile作用域传递
<!-- 引入着两个模块工程包 他们所依赖的jar也会添加到library中 测试:可以注释下面引入的工程看效果 -->
<!--2.依赖传递
1. 在user-service引入user-core 和user-log 叫做依赖传递 前提是只传递 user-core 和user-log里的jar作用域等于 complier的 传递给user-service
2. 如果user-service和user-core 包中都有log4j.jar包 并且级别相同 则在依赖传递的时候会根据pom.xml从上到下执行顺序进行在user-servcie中添加依赖传递的jar包
3. user-core 有dbunit.jar dbunit.jar依赖commons-logging-1.0.4.jar(间接依赖)
user-log 里直接使用<dependency>引入commons-logging-1.1.1.jar (直接依赖)
user-service 通过依赖传递引入user-core和user-log时user-core 和user-log里有相同的jar包 则按照顺序引入
但是在不同级别的时候 比如 user-core中通过引入dbunit.jar dbunit.jar依赖commons-logging-1.0.4引入了commons-logging-1.0.4
顺序就是user-service > user-core>dbunit.jar> commons-logging-1.0.4
而引入user-log 距离是最短的所以采用user-log里的commons-logging的jar
顺序就是 user-service > user-log > commons-loggging-1.1.1
如果user-service中有commons-logging 不管是几点几版本都会使用该版本引入距离最短
-->
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>user-core</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>user-log</artifactId>
</dependency>
<!-- 3. 如果user-service中有commons-logging 不管是几点几版本都会使用该版本引入距离最短 -->
<!-- <dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.0.4</version>
</dependency> -->
<!--依赖传递 范围
(该jar 用于综合测试依赖范围 和 依赖的传递 配合使用)
1.如果去掉<scope>test</scope> 该jar 将不会依赖传递给user-service jar包中
2.如果加上<scope>test</scope> 该jar 将会依赖传递给user-service jar包中
-->
<dependency>
<groupId>dbunit</groupId>
<artifactId>dbunit</artifactId>
</dependency>
依赖传递 意思就是如果service引入core工程 只会将core里引入的jar包传递给service前提是scope等于compile里的jar包传递给service
如果scope等于test 将不会进行传递到service lib下