Maven项目管理工具知识 day02

一、maven 构建 SSM 工程

1.1 需求:实现 SSM 工程构建,规范依赖管理。场景:根据 id 展示商品信息

1.2 准备数据库

1.3 创建一个 maven 工程

1.3.1 新建一个 ssm_maven 项目,使用webapp骨架

1.3.2 填写坐标

1.3.3 查看是否使用的自己的私服

1.3.4 在 main 目录下新建 java 和 resources 文件夹

1.3.5 把 java 和 resources 文件夹转成 source root

1.3.6 在 pom.xml 文件中修改编译版本

1.4 知识点准备

1.4.1 什么是依赖传递

先添加 springmvc 的核心依赖的坐标,会发现出现除了 spring-webmvc 以外的其他 jar包。因为我们的项目依赖 spring-webmv.jar,而 spring-webmv.jar 会依赖 spring-beans.jar 等等,所以 spring-beans.jar 这些 jar 包也出现在了我们的 maven 工程中,这种现象我们称为依赖传递。

1.4.2 依赖冲突的解决

1.4.2.1 解决依赖冲突有以下原则:

1、第一声明者优先原则:在 pom 文件定义依赖,先声明的依赖为准。

2、路径近者优先原则

1.4.2.2 排除依赖

1.4.2.3 锁定版本

1.5 定义 pom.xml

maven 工程首先要识别依赖,web 工程实现 SSM 整合,需要依赖 spring-webmvc5.0.2、 spring5.0.2、mybatis3.4.5 等,在 pom.xml 添加依赖

1.6 Dao 层

1.6.1 需求: 在 src/main/java 中定义 dao 接口,实现根据 id 查询商品信息

1.6.2 在 src/main/java 创建模型类

1.6.3 编写dao层代码

1.6.4 编写配置文件

1.6.4.1 编写itemsmapper.xml配置文件

Maven项目管理工具知识 day02

1.6.4.2 在 src/main/resources 创建applicationContext.xml

Maven项目管理工具知识 day02

1.6.4.3 在 src/main/resources 配置 log4j.properties

1.6.5 单元测试

在 src/test/java 创建单元测试类

Maven项目管理工具知识 day02

1.7 Service 层

1.7.1 代码

Maven项目管理工具知识 day02

1.7.2 配置文件

在 applicationContext.xml 中配置 service

1.8 Web 层

1.8.1代码

Maven项目管理工具知识 day02

1.8.2配置文件

1.8.2.1 在 springmvc.xml配置视图解析器

1.8.2.2 在Web.xml 加载 spring 容器,配置 springmvc 前端控制器

1.9 Jsp表现层

编写 /WEB-INF/jsp/viewItem.jsp

1.10 运行与调试

二、 分模块构建工程

2.1 需求: 将 SSM 工程拆分为多个模块开发:

Maven项目管理工具知识 day02

2.2 理解继承和聚合

通常继承和聚合同时使用。

何为继承? 继承是为了消除重复,如果将 dao、service、web 分开创建独立的工程则每个工程的 pom.xml 文件中的内容存在重复,比如:设置编译版本、锁定 spring 的版本等,可以将这些重复的配置提取出来在父工程的 pom.xml 中定义。

何为聚合? 项目开发通常是分组分模块开发,每个模块开发完成要运行整个工程需要将每个模块聚合在 一起运行,比如:dao、service、web 三个工程最终会打一个独立的 war 运行。

2.3 案例实现

2.3.1 maven-parent 父模块

2.3.1.1 选择骨架创建父工程

Maven项目管理工具知识 day02

2.3.1.2 填写坐标

2.3.1.3 确认使用的是本地仓库

2.3.1.4 注意代码所在的路径

2.3.1.5 设置项目的打包方式

2.3.1.6 在父工程的 pom.xml 中抽取一些重复的配置,比如:锁定 jar 包的版本、设置编译版本等。

2.3.1.7 将父工程发布至仓库, 父工程创建完成执行 install 将父工程发布到仓库方便子工程继承

2.3.2 ssm_dao 子模块

2.3.2.1 在父工程上右击创建 maven 模块:

Maven项目管理工具知识 day02

2.3.2.2 选择“跳过骨架选择”

2.3.2.3 填写模块名称

2.3.2.4 下一步,确定项目的目录

2.3.2.5 打包方式是 jar

2.3.2.6 定义 pom.xml 只添加dao层的 pom,mybatis 和 spring 的整合相关依赖

2.3.2.7 编写dao 代码

2.3.2.8 将 applicationContext.xml 拆分出一个 applicationContext-dao.xml,此文件中只配置 dao 相关

2.3.2.9 单元测试

2.3.2.10 把 dao 模块 install 到本地仓库

2.3.3 ssm_service 子模块

2.3.3.1 创建 ssm_service 子模块,方法同 ssm_dao 模块创建方法

2.3.3.2 ssm_service 模块的 pom.xml 文件中需要继承父模块,依赖 ssm_dao 模块,添加 spring 相关的依赖

2.3.3.3 编写service 接口代码

2.3.3.4 创建 applicationContext-service.xml,此文件中定义的 service。

2.3.3.5 单元测试

2.3.3.6 Install 到本地仓库

2.3.4 ssm_web 子模块

2.3.4.1 选择骨架创建 web 子模块

2.3.4.2 确认使用自己的本地仓库

2.3.4.3 填写模块名称

2.3.4.4 创建 java 和 resources 文件夹,转成 source root

2.3.4.5 添加打包方式 war

2.3.4.6 ssm_web 模块的 pom.xml 文件中需要继承父模块,依赖 ssm_service 模块,和 springmvc 模块

2.3.4.7 将 ssm_web 工程中的 controller 代码拷贝到 src/main/java

2.3.4.8 拷贝 ssm_web 工程中下的配置文件

2.3.4.9 运行调试

2.4 分模块构建工程-依赖整合

每个模块都需要 spring 或者 junit 的 jar,况且最终 package 打完包最后生成的项目中的 jar 就是各个模块依赖的整合,所以我们可以把项目中所需的依赖都可以放到父工程中,模块 中只留模块和模块之间的依赖

三、maven 私服

3.1 概述:

公司在自己的局域网内搭建自己的远程仓库服务器,称为私服,私服服务器即是公司内部的 maven 远程仓库,每个员工的电脑上安装 maven 软件并且连接私服服务器,员工将自己开发的项目打成 jar 并发布到私服服务器,其它项目组从私服服务器下载所依赖的构件 (jar)。 私服还充当一个代理服务器,当私服上没有 jar 包会从互联网中央仓库自动下载

3.2 搭建私服环境

3.2.1 下载 nexus

Nexus 是 Maven 仓库管理器,通过 nexus 可以搭建 maven 仓库,同时 nexus 还提供强 大的仓库管理功能,构件搜索功能等。

下载 Nexus, 下载地址:http://www.sonatype.org/nexus/archived/

3.2.2 安装 nexus

解压 nexus-2.12.0-01-bundle.zip,解压在 F 盘,进入 bin 目录

cmd 进入 bin 目录,执行 nexus.bat install

安装成功在服务中查看有 nexus 服务

3.2.3 卸载 nexus

cmd 进入 nexus 的 bin 目录,执行:nexus.bat uninstall

3.2.4 启动 nexus

cmd 进入 bin 目录,执行 nexus.bat start

查看 nexus 的配置文件 conf/nexus.properties

# Jetty section

application-port=8081 # nexus 的访问端口配置

application-host=0.0.0.0 # nexus 主机监听配置(不用修改)

nexus-webapp=${bundleBasedir}/nexus # nexus 工程目录

nexus-webapp-context-path=/nexus # nexus 的 web 访问路径

# Nexus section

nexus-work=${bundleBasedir}/../sonatype-work/nexus # nexus 仓库目录 runtime=${bundleBasedir}/nexus/WEB-INF # nexus 运行程序目录

访问: http://localhost:8081/nexus/

使用 Nexus 内置账户 admin/admin123 登陆:

点击右上角的 Login,输入账号和密码登陆

3.2.5 仓库类型

nexus 的仓库有 4 种类型:

1. hosted:宿主仓库,部署自己的 jar 到这个类型的仓库,包括 releases 和 snapshot 两部分,Releases 公司内部发布版本仓库、 Snapshots 公司内部测试版本仓库。

2. proxy:代理仓库,用于代理远程的公共仓库,如 maven 中央仓库,用户连接私服,私服自动去中央仓库下载 jar 包或者插件。

3. group:仓库组,用来合并多个 hosted/proxy 仓库,通常我们配置自己的 maven 连接仓库组。

4. virtual(虚拟):兼容 Maven1 版本的 jar 或者插件

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年7月3日 上午10:18
下一篇 2022年7月3日 上午10:20

相关推荐

  • 毕业生档案管理系统

    毕业生档案管理系统 随着现代教育的发展,毕业生档案管理系统已成为一个重要的工具,用于管理毕业生档案。这个系统可以帮助学校和就业中心更好地管理毕业生信息,并确保毕业生档案的安全和保密…

    科研百科 2024年5月29日
    112
  • 法学生科研项目题目大全

    法学生科研项目题目大全 作为一名法学生,进行科研项目是非常重要的一项任务。通过参与科研项目,我们可以提高我们的研究能力和创新能力,同时也可以加深我们对法律的理解和认识。以下是一些适…

    科研百科 2025年4月8日
    1
  • 图片文字不清晰,怎么可以变清晰

    图片文字不清晰可能是由于多种原因引起的,例如相机分辨率低、图片放大过度、拍摄环境光线不足等。如果发现图片文字不清晰,可以采取以下方法使其变清晰: 1. 调整相机设置:如果相机分辨率…

    科研百科 2024年10月13日
    9
  • Go、Go开发要点、Go语言入门(go 开发语言)

    Go Go顾名思义是关注速度和效率的软件,一是运行速度,二是开发速度。Go的代码开发行数要明显少于C ,有些C 的项目可以移植到Go语言下实现。 对于大多数企业而言,他们早期的We…

    科研百科 2023年5月7日
    245
  • 项目管理都用什么软件

    项目管理是组织管理中至关重要的一环,它涉及到计划、执行、控制和评估等方面。在现代社会中,随着信息技术的不断发展,越来越多的公司和组织开始使用项目管理软件来辅助他们进行项目管理工作。…

    科研百科 2024年9月4日
    135
  • 关于停车费,泰州这两个大型购物商场接连发布公告(泰州停车场收费)

    “万象城停车要收费了” 近日,多位网友和小编反馈称: 泰州万象城恰似停车要收费了 停车场出入口都张贴了“停车收费公示” 貌似要规范起来了~ 据收费公示显示 从11月起 泰州万象城将…

    科研百科 2022年7月6日
    249
  • 中药质量科研项目

    中药质量科研项目 近年来,随着现代医学的不断发展,中药的使用范围不断扩大。然而,中药的质量一直是人们关注的焦点。为了提升中药的质量,许多中药科研项目正在进行中。 其中,最为引人瞩目…

    科研百科 2025年2月23日
    0
  • 研究生没有课题能毕业吗

    研究生没有课题能毕业吗? 作为一名研究生,拥有一份令人兴奋的工作是许多人的梦想。然而,对于一些学生来说,他们可能面临着没有课题毕业的困境。这对于那些想要追求自己的学术梦想的人来说,…

    科研百科 2024年10月18日
    6
  • OKR工具有哪些?如何选择适合自己的?(okr用什么工具)

    本篇文章,除了介绍国内外最好的4款OKR工具:1、Worktile;2、PingCode Goals;3、Vision;4、Zokri;还将讲述我们在OKR落地过程中遇到过的一些坑…

    2022年5月30日
    320
  • 采购类合同管理办法

    采购类合同管理办法 为规范采购行为,保障采购合同的有效性和合法性,根据《中华人民共和国合同法》和其他相关法律法规的规定,我部制定了《采购类合同管理办法》(以下简称《办法》),现予发…

    科研百科 2024年9月2日
    35