oracle竖列的数据怎么变成一行
268
2022-09-05
[Maven进阶]聚合和继承
文章目录
聚合
步骤1:创建一个空的maven项目步骤2:将项目的打包方式改为pom步骤3:pom.xml添加所要管理的项目步骤4:使用聚合统一管理项目
继承
步骤1:创建一个空的Maven项目并将其打包方式设置为pom步骤2:在子项目中设置其父工程步骤3:优化子项目共有依赖导入问题步骤4:优化子项目依赖版本问题
聚合与继承
聚合与继承的区别IDEA构建聚合与继承工程
步骤1:创建一个Maven项目步骤2:创建子项目
我们的项目已经从以前的单模块,变成了现在的多模块开发。项目一旦变成了多模块开发以后,就会引发一些问题,在这一节中我们会介绍两个内容
聚合和
继承,用这两个知识来解决下分模块后的一些问题。
聚合
分模块开发后,需要将这四个项目都安装到本地仓库,目前我们只能通过项目Maven面板的install来安装,并且需要安装四个,如果我们的项目足够多,那么一个个安装起来还是比较麻烦的如果四个项目都已经安装成功,当ssm_pojo发生变化后,我们就得将ssm_pojo重新安装到maven仓库,但是为了确保我们对ssm_pojo的修改不会影响到其他项目模块,我们需要对所有的模块进行重新编译,那又需要将所有的模块再来一遍
项目少的话还好,但是如果项目多的话,一个个操作项目就容易出现漏掉或重复操作的问题,所以我们就想能不能抽取一个项目,把所有的项目管理起来,以后我们要想操作这些项目,只需要操作这一个项目,其他所有的项目都走一样的流程,这个不就很省事省力。
这就用到了我们接下来要讲解的聚合,
所谓聚合:将多个模块组织成一个整体,同时进行项目构建的过程称为聚合聚合工程:通常是一个不具有业务功能的"空"工程(有且仅有一个pom文件)作用:使用聚合工程可以将多个工程编组,通过对聚合工程进行构建,实现对所包含的模块进行同步构建
当工程中某个模块发生更新(变更)时,必须保障工程中与已更新模块关联的模块同步更新,此时可以使用聚合工程来解决批量模块同步构建的问题。
关于聚合具体的实现步骤为:
步骤1:创建一个空的maven项目
步骤2:将项目的打包方式改为pom
那针对于这种部分项目有的jar包,我们该如何管理优化呢? 在父工程mavne_01_parent的pom.xml来定义依赖管理 将maven_02_ssm的pom.xml中的junit依赖删除掉,刷新Maven 刷新完会发现,在maven_02_ssm项目中的junit依赖并没有出现,所以我们得到一个结论: 子项目要想使用它所提供的这些jar包,需要自己添加依赖,并且不需要指定 在maven_02_ssm的pom.xml添加junit的依赖 注意:这里就不需要添加版本了,这样做的好处就是当父工程dependencyManagement标签中的版本发生变化后,子项目中的依赖版本也会跟着发生变化 在maven_04_dao的pom.xml添加junit的依赖 这个时候,maven_02_ssm和maven_04_dao这两个项目中的junit版本就会跟随着父项目中的标签dependencyManagement中junit的版本发生变化而变化。不需要junit的项目就不需要添加对应的依赖即可。 至此继承就已经学习完了,总结来说,继承可以帮助做两件事 将所有项目公共的jar包依赖提取到父工程的pom.xml中,子项目就可以不用重复编写,简化开发将所有项目的jar包配置到父工程的dependencyManagement标签下,实现版本管理,方便维护 dependencyManagement标签不真正引入jar包,只是管理jar包的版本子项目在引入的时候,只需要指定groupId和artifactId,不需要加version当dependencyManagement标签中jar包版本发生变化,所有子项目中有用到该jar包的地方对应的版本会自动随之更新 最后总结一句话就是,父工程主要是用来快速配置依赖jar包和管理项目中所使用的资源。 小结 继承的实现步骤: 创建Maven模块,设置打包类型为pom 在父工程的pom文件中配置依赖关系(子工程将沿用父工程中的依赖关系),一般只抽取子项目中公有的jar包 在父工程中配置子工程中可选的依赖关系 在子工程中配置当前工程所继承的父工程 在子工程中配置使用父工程中可选依赖的坐标 注意事项: 1.子工程中使用父工程中的可选依赖时,仅需要提供群组id和项目id,无需提供版本,版本由父工程统一提供,避免版本冲突 2.子工程中还可以定义父工程中没有定义的依赖关系,只不过不能被父工程进行版本统一管理。 聚合与继承 聚合与继承的区别 两种之间的作用: 聚合用于快速构建项目,对项目进行管理继承用于快速配置和管理子项目中所使用jar包的版本 聚合和继承的相同点: 聚合与继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一个pom文件中聚合与继承均属于设计型模块,并无实际的模块内容 聚合和继承的不同点: 聚合是在当前模块中配置关系,聚合可以感知到参与聚合的模块有哪些继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己 IDEA构建聚合与继承工程 相信到这里,大家已经能区分开什么是聚合和继承,但是有一个稍微麻烦的地方就是聚合和继承的工程构建,需要在聚合项目中手动添加modules标签,需要在所有的子项目中添加parent标签,万一写错了咋办?其实对于聚合和继承工程的创建,IDEA已经能帮助我们快速构建,具体的实现步骤为: 步骤1:创建一个Maven项目 创建一个空的Maven项目,可以将项目中的src目录删除掉,这个项目作为聚合工程和父工程。 步骤2:创建子项目 该项目可以被聚合工程管理,同时会继承父工程。 创建成功后,maven_parent即是聚合工程又是父工程,maven_web中也有parent标签,继承的就是maven_parent,对于难以配置的内容都自动生成。 按照上面这种方式,大家就可以根据自己的需要来构建分模块项目。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~