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

相关推荐