一、Maven 插件
我们之前学习 Maven 命令的时候,都是通过 DOS 窗口手动敲,但是不能说用了 IDE 工具之后,我们还是手动敲,这里这些个 IDE 厂家给我们提供了便利,来看一下。
在 Eclipse 中,我们随便找一个 Maven 项目,鼠标右键就可以在 Run As 找到这些个 Maven 命令,大家可以自己尝试使用一下,这里就不展示了。
同样,来看一下 IDEA 的。
IDEA 中有两个,一个是 Lifecycle,一个是 Plugins,我们一般使用上面的 Lifecycle。
IDEA 中以前复制到包里面之后就会自动进行下载,后来版本更替后,这个功能就变成手动的了。
Eclipse 一直都是复制进去,自动下载。
二、jar 依赖关系
我们用 Eclipse 随便打开一个 Maven 的项目,打开 pom.xml 文件。
选择这个 Dependency Hierarchy
我们可以在这里看到整个项目的 jar,以及依赖关系,我们用其中一个来看。
slf4j-log4j 这个 jar 包,下面有两个 jar,一个是 slf4j-api,还有一个是 log4j。这就是说明,slf4j-log4j 这个 jar 依赖 下面的两个 jar,而且 Maven 也会自动把这个依赖的 jar 也帮我们下载下来。
来看一下项目的 jar 包管理。
三、依赖管理
Maven 的一个核心就是依赖管理,但是哈,如果 A 依赖 B,B 依赖 C,那么我们这个项目中肯定会有三个 jar 包。
但是现在有了另外一个 D 包,D 也依赖 C,那么我们项目就变成有两个东西依赖了 C。
那我们项目到时候是不是要引入两个 C 呢?
答案肯定是不会的,Maven 采用了一种最近原则,它直接把 D 下面的 C 直接引入进来,而 AB 的那个线的 C 就不弄进来了。
但是哈,有的时候我们这个 C 可能有很多版本,可能有的时候要用版本高的,有的时候用版本低的,这里我们还可以进行管理。
来看一个图
这个是某一个项目中引入了 swagger,但是哈,我们不想要 swagger 下面的 swagger-annotations 和 swagger-models,我们可以使用 exclusion 标签进行标记。
然后我们在下面自己定义两个 其他版本的 swagger-annotations 和 swagger-models。
这样我们就可以抛弃原有版本,自己替换别的版本了。