Maven实战总结(IDEA)

目录

一、  回顾[ 理解]

1. Maven 的好处

2. 安装配置 maven

3. 三种仓库

4. 常见的命令

5. 坐标的书写规范

6. 如何添加坐标

7. 依赖范围

二、maven  构建 SSM 工程[ 应用]

1.  需求

2. 准备数据库

3.  创建一个 maven 

1、新建一个 ssm_maven 项目,使用下图选中的骨架

2、填写坐标

3、查看是否使用的自己的私服

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

6、把 java 和 resources文件夹转成source root

7、修改编译版本,在 pom.xml 文件中添加

4. 知识点准备

4.1  什么是依赖传递

4.2 依赖冲突的解决

4.2.1 依赖调解原则

4.2.2 排除依赖

4.2.3 锁定版本

5. 定义 pom.xml

6. Dao 层

6.1 pojo 

6.2 dao 层代码

6.3  配置文件

6.4 单元测试

7.  Service 层

7.1 代码

7.2 配置文件

8.  Web 层

8.2  配置文件

9.  Jsp

10.  运行 与调试

三、  分模块构建工程[ 应用]

1.  需求

需求描述

理解 继承和聚合

2.  案例实现

2.1 maven-parent  父模块

2.2 ssm_dao  子模块

2.3 ssm_service  子模块.

2.4 ssm_web  子模块

2.5  运行 调试

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

四、 maven  私服[ 了解]

1.  需求

2.  分析

3. 搭建私服环境

3.1  下载 nexus

3.2  安装 nexus

3.3  卸载 nexus

3.4  启动 nexus

3.5 仓库类型

4.  将项目发布到私服

4.1 需求

4.3  测试

5.  从私服下载 jar 包

5.1  需求

5.2  管理仓库组

5.3 在 setting.xml  中配置仓库

5.4  测试从私服下载 jar 包

五、  把第三方 jar  包放入本地仓库或私服

1.  导入本地库

2. 导入私服

3. 参数说明


一、  回顾[ 理解]

1. Maven 的好处

节省磁盘空间
可以一键构建
可以跨平台
应用在大型项目时可以提高开发效率

2. 安装配置 maven

注意:3.3+版本需要 jdkj.7+以上的支持

3. 三种仓库

本地仓库
远程仓库(私服)
中央仓库

4. 常见的命令

Compile
Test
Package
Install
Deploy
Clean

5. 坐标的书写规范

groupId 公司或组织域名的倒序
artifactId 项目名或模块名
version 版本号

6. 如何添加坐标

1、在本地仓库中搜索
2、互联网上搜,推荐网址 http://www.mvnrepository.com/

7. 依赖范围

Compile
Test
Runtime
Provided

二、maven  构建 SSM 工程[ 应用]

1.  需求

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

2. 准备数据库

3.  创建一个 maven 

1、新建一个 ssm_maven 项目,使用下图选中的骨架

2、填写坐标

3、查看是否使用的自己的私服

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

6、把 java 和 resources文件夹转成source root

7、修改编译版本,在 pom.xml 文件中添加

4. 知识点准备

4.1  什么是依赖传递

先添加 springmvc的核心依赖的坐标

会发现出现除了 spring-webmvc 以外的其他 jar。因为我们的项目依赖 spring-webmv.jar,而spring-webmv.jar 会依赖spring-beans.jar 等等,所以 spring-beans.jar 这些 jar 包也出现在了我们的 maven 工程中,这种现象我们称为依赖传递。从下图中可看到他们的关系:(请注意spring-beans 的版本)

4.2 依赖冲突的解决

接着添加一个依赖

我们会发现这两个 jar 包同时都依赖了 spring-beans

但是spring-webmvc 依赖 spirng-beans-4.2.4,spring-context 依赖 spring-beans-5.0.2,但是发现
spirng-beans-4.2.4 加入到工程中

而我们希望 spring-beans-5.0.2 加入工程。这就造成了依赖冲突。解决依赖冲突有以下原则:

4.2.1 依赖调解原则

maven 自动按照下边的原则调解:

1 、第一声明者优先原则
在 pom 文件定义依赖,先声明的依赖为准。
测试:
如果将上边 spring-webmvc 和 spring-context 顺序颠倒,系统将导入 spring-beans-5.0.2。
分析:
由于 spring-webmvc 在前边以 spring-webmvc 依赖的 spring-beans-5.0.2 为准,所以最终spring-beans-5.0.2 添加到了工程中。

2、路径近者优先原则

例如:还是上述情况,spring-contex 和 spring-webmvc 都会传递过来 spirng-beans,那如果直接把 spring-beans 的依赖直接写到 pom 文件中,那么项目就不会再使用其他依赖传递来的 spring-beans,因为自己直接在 pom 中定义 spring-beans要比其他依赖传递过来的路径要近。

在本工程中的 pom 中加入 spirng-beans-5.0.2 的依赖,根据路径近者优先原则,系统将导入spirng-beans-5.0.2:

4.2.2 排除依赖

上边的问题也可以通过排除依赖方法辅助依赖调解,如下:
比如在依赖 spring-webmvc 的设置中添加排除依赖,排除 spring-beans,
下边的配置表示:依赖 spring-webmvc,但排除 spring-webmvc 所依赖的 spring-beans。

4.2.3 锁定版本

面对众多的依赖,有一种方法不用考虑依赖路径、声明优化等因素可以采用直接锁定版本的方法确定依赖构件的版本,版本锁定后则不考虑依赖的声明顺序或依赖的路径,以锁定的版本的为准添加到工程中,此方法在企业开发中常用。
如下的配置是锁定了 spring-beans 和 spring-context 的版本:

还可以把版本号提取出来,使用<properties>标签设置成变量

注意:在工程中锁定依赖的版本并不代表在工程中添加了依赖,如果工程需要添加锁定版本的依赖则需要单独添加<dependencies></dependencies>标签,如下:

5. 定义 pom.xml

maven 工程首先要识别依赖,web 工程实现 SSM 整合,需要依赖 spring-webmvc5.0.2、
spring5.0.2、mybatis3.4.5等,在 pom.xml 添加工程如下依赖:
(在实际企业开发中会有架构师专门来编写 pom.xml)
分两步:

1)锁定依赖版本
2)添加依赖

6. Dao 层

6.1 pojo 

6.2 dao 层代码

6.3  配置文件

6.4 单元测试

7.  Service 层

7.1 代码

7.2 配置文件

8.  Web 层

8.1 代码

8.2  配置文件

springmvc.xml

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

9.  Jsp

/WEB-INF/jsp/viewItem.jsp 如下:

10.  运行 与调试

添加 tomcat7插件,双击右侧tomcat7 运行

三、  分模块构建工程[ 应用]

基于上边的三个工程分析
继承:创建一个 parent 工程将所需的依赖都配置在 pom 中
聚合:聚合多个模块运行。

1.  需求

需求描述

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

理解 继承和聚合

通常继承和聚合同时使用。
  何为继承?
继承是为了消除重复,如果将 dao、service、web 分开创建独立的工程则每个工程的 pom.xml文件中的内容存在重复,比如:设置编译版本、锁定 spring的版本的等,可以将这些重复的配置提取出来在父工程的 pom.xml 中定义。
  何为聚合?
项目开发通常是分组分模块开发,每个模块开发完成要运行整个工程需要将每个模块聚合在一起运行,比如:dao、service、web 三个工程最终会打一个独立的war 运行。

2.  案例实现

2.1 maven-parent  父模块

2.1.1  创建父工程

1、选择骨架创建父工程

2、填写坐标

3、确认使用的是本地仓库

4、注意代码所在的路径(默认)

5、设置项目的打包方式

2.1.2  定义 pom.xml

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

2.1.3 将父工程发布至仓库

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

2.2 ssm_dao  子模块

2.2.1  创建 dao 子模块

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

2、选择“跳过骨架选择”:

3、填写模块名称

4、下一步,确定项目的目录

5、打包方式是 jar

2.2.2  定义 pom.xml

只添加到dao层的 pom,mybatis 和 spring 的整合相关依赖

2.2.3 dao 代码

2.2.4  配置文件

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

2.2.5 单元测试

2.2.6把 dao  模块 install  到本地仓库

2.3 ssm_service  子模块.

2.3.1  创建 service  子模块

方法同 ssm_dao 模块创建方法,模块名称为 ssm_service。

2.3.2  定义 pom.xml

2.3.3 service 接口

将 ssm_maven 工程中的service接口拷贝到 src/main/java中:

2.3.4 配置文件

2.3.5 依赖范围对传递依赖的影响(了解)

2.3.5.1  问题描述

2.3.5.3 依赖范围对传递依赖的影响

2.3.6 单元测试

2.3.7 Install 到本地仓库

2.4 ssm_web  子模块

2.4.1  创建 web 子模块

2、确认使用自己的本地仓库

3、填写模块名称

使用骨架创建 web 项目会花费些时间,请耐心等待

5、添加打包方式war

2.4.2  定义 pom.xml

2.4.3 controller

2.4.4 配置文件

2.5  运行 调试

方法 1:在ssm_web 工程的 pom.xml 中配置 tomcat 插件运行
运行 ssm_web 工程它会从本地仓库下载依赖的 jar 包,所以当 ssm_web 依赖的 jar 包内容修
改了必须及时发布到本地仓库,比如:ssm_web 依赖的 ssm_service 修改了,需要及时将ssm_service 发布到本地仓库。
方法 2:在父工程的 pom.xml 中配置 tomcat插件运行,自动聚合并执行
推荐方法2,如果子工程都在本地,采用方法2则不需要子工程修改就立即发布到本地仓库,
父工程会自动聚合并使用最新代码执行。

注意:如果子工程和父工程中都配置了tomcat 插件,运行的端口和路径以子工程为准。

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

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

四、 maven  私服[ 了解]

1.  需求

正式开发,不同的项目组开发不同的工程。
ssm_dao工程开发完毕,发布到私服。
ssm_service 从私服下载 dao

2.  分析

3. 搭建私服环境

3.1  下载 nexus

3.2  安装 nexus

3.3  卸载 nexus

3.4  启动 nexus

3.5 仓库类型

4.  将项目发布到私服

4.1 需求

4.2  配置

4.3  测试

5.  从私服下载 jar 包

5.1  需求

5.2  管理仓库组

5.3 在 setting.xml  中配置仓库

5.4  测试从私服下载 jar 包

五、  把第三方 jar  包放入本地仓库或私服

1.  导入本地库

2. 导入私服

3. 参数说明

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值