maven快速入门第十讲——使用maven分模块构建工程
发布日期:2021-06-30 17:54:52 浏览次数:2 分类:技术文章

本文共 1469 字,大约阅读时间需要 4 分钟。

在上一讲中,我们对工程的拆分、聚合以及继承这三个思想有了一定的认识,有了思想才能指导实践操作,接下来,我会将一个工程拆分成多个模块来进行开发。

在平时的Java Web项目开发中为了便于后期的维护,我们一般会进行分层开发,最常见的就是分为domain(域模型层)、dao(数据库访问层)、service(业务逻辑层)以及web(表现层),这样分层之后,各个层之间的职责会比较明确,后期维护起来也相对比较容易,今天我们就要使用maven来构建以上的各个层了。构建出来的工程结构如下图所示。

在这里插入图片描述

创建crm-parent父工程

在这里,我们可以使用eclipse来创建一个父工程,例如crm-parent。详细步骤如下:

  • 第一步,点击File菜单选项,并在下拉列表中选中New,然后再在弹出的下拉列表中选中Other,如下图所示。
    在这里插入图片描述
    接着,在弹出的窗口的输入框中输入maven,并选择Maven Project,如下图所示。
    在这里插入图片描述
  • 第二步,点击Next,根据工程的实际情况选择工程的存放目录,当然了,也可以选择【Use default Workspace location】默认工作空间。
    在这里插入图片描述
  • 第三步,点击Next,出现如下窗口,在该窗口框中定义maven工程的坐标,如下图所示。
    在这里插入图片描述
    创建后的父工程如下图所示。
    在这里插入图片描述
    从它的目录结构可以看出,父工程本身不写任何代码,它里面有一个pom.xml文件,这个文件可以将多个子模块中通用的jar包所对应的坐标集中在父工程中配置,将来的子模块就可以不需要在pom.xml文件中配置通用jar包的坐标了。

构建crm-dao子模块

第一步,选中对应的父工程,然后右键,在下拉列表中选中New,接着再在弹出的下拉列表中选中Other,如下图所示。

在这里插入图片描述
紧接着,在弹出的窗口的输入框中输入maven,并选择Maven Project,如下图所示。
在这里插入图片描述
第二步,指定子模块名称,并勾选"跳过骨架选择"。
在这里插入图片描述
第三步,点击Next,指定crm-dao子工程的打包方式为jar。
在这里插入图片描述
第四步,点击Finish,可以看到父工程的结构如下图所示。
在这里插入图片描述
打开父工程的pom.xml文件,你会看到多了一个modules节点,该节点表示该父工程下所包含的子模块有哪些,可以有多个子模块。
在这里插入图片描述
再打开子模块的pom.xml文件,你会发现有一个parent节点,该节点内部所包含的子节点,其实就是父工程的坐标。
在这里插入图片描述

构建crm-service子模块

步骤同上,不过我们要注意crm-service子工程的打包方式为jar。

构建crm-web子模块

步骤同上,不过我们要注意crm-web子工程的打包方式为war。此时,你会发现新创建的crm-web子工程报错了,如下图所示。

在这里插入图片描述
为什么会报错啊?因为它缺少了一个web.xml文件。为了解决这个问题,直接利用eclipse就可以很方便的创建出这个web.xml文件了,而且该文件中的内容也帮我们自己自动生成了,按照下图所示的步骤进行操作即可。
在这里插入图片描述
不知你有没发现,此时创建出来的各个子工程的编译版本都是1.5,如下图所示。
在这里插入图片描述
所以我们需要将编译版本设置为1.8。一种特别愚蠢的方法是在各个子工程的pom.xml文件中通过添加maven插件指定编译时候使用的JDK版本,很显然这种方法不可取。另外一种方法是将每个子工程的pom.xml文件中的重复内容(例如设置编译版本)提取出来在父工程的pom.xml文件中定义好,就像下图这样。
在这里插入图片描述
这样弄完之后,可能各个子工程还会报错,刷新一下各个子工程即可解决错误。最终创建出来的父工程的结构如下图所示。
在这里插入图片描述

转载地址:https://liayun.blog.csdn.net/article/details/103692736 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:maven快速入门第十一讲——依赖的传递性
下一篇:maven快速入门第九讲——maven工程的拆分、聚合以及继承思想

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月08日 02时29分21秒