maven白小白(四)依赖^_*

àì夳堔傛蜴生んèń 2023-02-14 02:59 117阅读 0赞

目录

一、继承和聚合

二、依赖的范围

三、依赖的配置


既然maven可以对项目进行打包,安装到本地maven仓库,也可以部署到远程仓库,那也就一样可以相互引用,有了引用关系,引用多了,那么引用和引用之间,有了相关性。

A依赖于B,B依赖于C,那么A也依赖于C

format_png

一、继承和聚合

这不就是中学的传递性吗?这是同级间的,如果是继承的关系呢?父亲引用了依赖,儿子是不是也就有了? 没错。

这些就是依赖的特性。

单如果父类需要使用子类的所有程序,不能一个一个打包,可以把你累个半死,不累也烦“si”你,这个时候用聚合工程就可以了,就像这样,儿子会在父亲的pom文件中,父亲也会再儿子的pom文件中,父亲引入的依赖儿子都会有,在对父亲进行打包部署的时候,儿子也都可以打包部署。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3htbDE5OTY_size_16_color_FFFFFF_t_70

PS:有没有对继承和聚合有点迷糊?

maven中的继承和聚合的关系:

两者的目的是不一样的,聚合的目的是能够快速的构建项目,继承的目的是减少重复配置。

聚合:

定义一个聚合模块,然后在pom文件中添加标签,其中的内容是模块相对于当前模块的路径。那么在构建聚合模块的时候,在中定义的模块也会跟着构建,不用逐个构建,因此加快了构建速度。

继承:

除了定义一个父模块,在父模块的pom文件中添加标签,还要在子模块pom文件中添加标签,指向父模块。指向之后,那么在父模块中定义的插件和依赖都可以被子模块继承,就不用再子模块pom文件中重复配置了(减少了重复配置)。

注:无论是聚合还是继承,父模块的pom文件中的的内容都是pom,(这是乌龟的屁股,规定)。如果不写的话,默认的都是 jar。

二、依赖的范围

程序编程好后到构建成功这个过程全部由maven包管,在maven的不同生命周期阶段,对依赖的需要也就有不同,也就有了依赖的运行范围。

format_png 1

三、依赖的配置

除了依赖的运行范围,还有依赖中的有些依赖我不全用,可不可以去掉不需要的?

答案是当然可以,配置一下就可以。

咋配置,看图:pom文件中对引入依赖的属性的配置

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3htbDE5OTY_size_16_color_FFFFFF_t_70 1

等一下,说到了pom文件的依赖,没有想起在父类的依赖中总有一个标签

啰嗦一下:

的作用

在父模块定义了很多依赖,但是某一个模块并没有全部用到,那么子模块还是会全部继承过来。比较浪费。

所以可以使用依赖管理标签

在父模块的pom文件中的定义了所有需要依赖的jar包,但是这样子模块并不会引入这些jar包。子模块中需要哪些jar包就在自身pom文件的标签中引入就可以了,因为父模块的pom文件中已经定义过了,子模块的pom文件只需定义出就可以了。

如果表示没太明白:在看一下,

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3htbDE5OTY_size_16_color_FFFFFF_t_70 2

如果还觉得没有抓手:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3htbDE5OTY_size_16_color_FFFFFF_t_70 3

好了好了,终于啰嗦完了

发表评论

表情:
评论列表 (有 0 条评论,117人围观)

还没有评论,来说两句吧...

相关阅读