【Java】maven对项目的拆分聚合

时间:2024-04-15 07:16:19

把mvc项目进行拆分,原来是通过包名进行分层的,现在再Maven项目里,我们可以通过Maven工具,进一步的拆分,怎么分呢?

把Dao层,Service层,Controller和View层的代码,各自拆分成一个一个的表现上独立的工程来。

拆分后的工程分别是:mvc-dao , mvc-service , mvc-web 三个看起来独立的工程。

如果我们pom.xml引入的jar包, 是我们本地工程, 在同一个工作空间, Maven会优先从本地的工程里去引入相关的类, 只有本地工程中不存在对应的类, 去本地仓库当中去找!

拆分完了, 还没结束,如果真结束了,那就真把它们拆分了,真拆分了那还怎么运行呢? 所以,我们还要对拆分开的项目工程进行聚合。

怎么把它们聚合起来呢? 这里我们要提出一个新的概念: 父工程 , 基本思路是这样:我们为拆分出来的子工程创造一个父工程,让这mvc-dao , mvc-service , mvc-web三个儿子都有一个共同的爹:mvc-parent,从而建立关联,它们都是父工程的子工程,所以呢都是兄弟,那么就可以合起来运行了!

具体来实现:

①先建立一个父工程(注意的就只有一个,Packaging打包的时候要选择: pom , 其他都和普通的Maven项目一样)创建父工程后,你会发现他的目录结构有点特别,只有一个pom.xml,父工程是不需要编码的.

它要做的工作或者说它的主要作用就是:

一方面 : 在pom.xml文件中配置jar包 , 让子工程(子模块)继承!(所以把原来的pom.xml里的所有内容copy到这里来)

另一方面:将各个子模块聚合在一起

父工程最后一个重要的点:不要忘记将父工程安装install到本地的Maven仓库,以供后面的子模块从本地Manven仓库中去引用

②建立各个maven子模块, 快捷的办法选中父工程, 右键选择New -> Maven Module

----------------以上是拆分-------------------------

聚合:

前面我们的拆分的时候, 为了让下个层级的工程,比如: Dao层为了下一层级的Service层, 能够访问得到自己, Dao要mvn install , 打包成jar包安装到Maven仓库中, 以供Service在pom.xml文件中依赖继承, 这里的问题? 就是每个层都要一个一个地去安装install, 稍稍有点麻烦!

聚合就可以解决这个麻烦! 聚合可以一键安装所有的子工程!

具体配置: 在聚体工程中mvn install就会把所有的工程都mvn install

子工程的相对目录

....

一般情况下, 我们都是在父工程里进行聚合的! 而且, 创建子工程的时候, 父工程的pom.xml里自动配置modules.