05|第五课:依赖排除以及依赖有效性及通过Maven整合多个项目
一、历史回顾
(一)、Maven依赖
1、依赖的有效性分别是:compile(默认)、test 、provided。
二、Maven依赖
(一)、Maven依赖排除
1、依赖排除
A.jar ---> B.jar,当我们通过Maven引入A.jar时,会自动引入B.jar。但是这里只想要A.jar,不想要自动引入B.jar。
A.jar(x.java,y.java,z.java) B.jar(p.java,c.java,i.java)
A.jar和B.jar之间的依赖的本质:z.java ---> c.java。此时有个人对A.jar很熟悉,只使用A.jar中的x.java和y.java。那么不引用B.jar也是可以的,将B.jar排除。这就是依赖排除。
再次强调:在在Eclipse的pom.xml中增加完依赖后,需要maven ---> update Project。
依赖排除:

例:比如引入spring-context.jar。
引入前:

引入后:

引入spring-context.jar后,会自动引入spring-core.jar、spring-aop.jar、spring-beans.jar等jar。目前这里就像引入spring-context.jar,其他的管理的不想引入。就使用“<exclusions>”以及其中的“<exclusion>”标签。具体操作如下图所示:

2、依赖的传递性
依赖的传递:由A.jar ---> B.jar ---> C.jar,要想A.jar ---> C.jar,当且仅当B.jar依赖于C.jar的范围是compile。
例:把两个项目整合起来,一个叫Demo1,另一个叫Demo2。Demo2要是使用Demo1,这个时候需要将Demo1放到仓库中才能被Demo2使用到。

Demo1项目中的HelloWorld.java的doSomething方法,被Demo2项目的SayHelloWorld.java的doInvokeDoSomething方法调用。这是两个不同的项目。
Demo1项目:

将Demo1,使用Maven命令install上传到Maven本地库。

Demo2项目:

Demo2的测试代码:

pom.xml的配置信息:

最后,使用Maven的test命令进行测试。

总结:
多个maven项目(模块)之间如何依赖:p项目依赖于--->q项目
1、p项目install到本地仓库
2、q项目依赖:
