一、历史回顾
(一)、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项目依赖: