一、Maven 插件

我们之前学习 Maven 命令的时候,都是通过 DOS 窗口手动敲,但是不能说用了 IDE 工具之后,我们还是手动敲,这里这些个 IDE 厂家给我们提供了便利,来看一下。

libreoffice maven依赖 maven依赖管理插件_maven插件

在 Eclipse 中,我们随便找一个 Maven 项目,鼠标右键就可以在 Run As 找到这些个 Maven 命令,大家可以自己尝试使用一下,这里就不展示了。

同样,来看一下 IDEA 的。

libreoffice maven依赖 maven依赖管理插件_jar 包_02

libreoffice maven依赖 maven依赖管理插件_maven_03

IDEA 中有两个,一个是 Lifecycle,一个是 Plugins,我们一般使用上面的 Lifecycle。

IDEA 中以前复制到包里面之后就会自动进行下载,后来版本更替后,这个功能就变成手动的了。

Eclipse 一直都是复制进去,自动下载。

二、jar 依赖关系

我们用 Eclipse 随便打开一个 Maven 的项目,打开 pom.xml 文件。

libreoffice maven依赖 maven依赖管理插件_maven依赖管理_04

选择这个 Dependency Hierarchy

libreoffice maven依赖 maven依赖管理插件_maven_05

我们可以在这里看到整个项目的 jar,以及依赖关系,我们用其中一个来看。

slf4j-log4j 这个 jar 包,下面有两个 jar,一个是 slf4j-api,还有一个是 log4j。这就是说明,slf4j-log4j 这个 jar 依赖 下面的两个 jar,而且 Maven 也会自动把这个依赖的 jar 也帮我们下载下来。

来看一下项目的 jar 包管理。

libreoffice maven依赖 maven依赖管理插件_maven依赖管理_06

三、依赖管理

Maven 的一个核心就是依赖管理,但是哈,如果 A 依赖 B,B 依赖 C,那么我们这个项目中肯定会有三个 jar 包。

但是现在有了另外一个 D 包,D 也依赖 C,那么我们项目就变成有两个东西依赖了 C。

那我们项目到时候是不是要引入两个 C 呢?

答案肯定是不会的,Maven 采用了一种最近原则,它直接把 D 下面的 C 直接引入进来,而 AB 的那个线的 C 就不弄进来了。

但是哈,有的时候我们这个 C 可能有很多版本,可能有的时候要用版本高的,有的时候用版本低的,这里我们还可以进行管理。

来看一个图

libreoffice maven依赖 maven依赖管理插件_maven依赖管理_07

这个是某一个项目中引入了 swagger,但是哈,我们不想要 swagger 下面的 swagger-annotations 和 swagger-models,我们可以使用 exclusion 标签进行标记。

然后我们在下面自己定义两个 其他版本的 swagger-annotations 和 swagger-models。

这样我们就可以抛弃原有版本,自己替换别的版本了。