阅读 22

maven1-概述

引言

搭建一个SSM环境的步骤是

  1. 导入jar包
  2. 包结构
  3. 书写配置文件

第一步导入jar包这一步就很繁琐,如果我们要搭建一个SSM的环境,少说也要导入十来个jar包

那么我们怎么找jar包,导入jar包的?一个一个去找,一个一个导入,麻烦易错,那么如何解决这个问题呢?

maven

Maven介绍

Maven 项目管理和构建的工具 底层是java

就是一个工具 相当于tomcat Tomcat帮我们做了什么事儿呢 发布项目 maven帮我们做项目管理

是Apache开源组织提供的一个基于POM(Project Object Model)的项目构建(Build)工具,所谓的构建指的是代码清除(clean)、编译(compile)、测试(test)、打包(package)、安装(install)、部署(deploy)等一系列流程

Maven特点

可以摆脱IDE的规范

什么是IDE规范 例子:当当网项目结构 IDEA和Myeclipes的区别----->问题:项目的迁移不方便 可移植性差 场景:项目进行到一半换IDEA能不能行?----->解决:maven提出统一的规范

通过命令快速构建项目

现在构建项目:通过IDE工具构建的

Maven:通过一个指令就可以

指令就是命令 javac

自动管理依赖

依赖为什么要管理 jar和jar之间有依赖关系 Sturts2和xwork----->问题:自己管理很麻烦,容易出错 ---->解决:maven可以自动的管理jar包

1545642534755

例子:Sturts2的开发,导入jar包

struts-core.jar 依赖 xwork-core.jar jar包之间是需要互相依赖的,那么有没有一种可能a--->b--->c--->d

如果要使用a,必须导入依赖的bcd

maven如何来解决这个问题?

节省磁盘空间

1545642654959

每个项目中都需要导入一套jar包 ----> 问题:jar包冗余 浪费空间 ---->解决:公共文件夹集中管理jar包 谁需要谁去引用---->maven就是这么做的 本地仓库文件夹---->问题:如果需要的jar包本地文件夹没有怎么办---->通过网络下载 maven中心仓库(演示访问) 原理图---->问题:如何告诉本地仓库需要什么jar包?如何标识一个jar包?---->maven坐标 演示一个坐标

1.例子:两个项目用的都是SSM架构,都需要导入一整套的jar包。

有什么问题?

代码冗余,jar包也冗余了。

如何解决这个问题?

2.例如我想在两个项目中都引入Mybatis的jar包,提供一个公共的文件夹(集中式的文件夹),如果要使用jar包都去这个文件夹中引用。不引入。

Maven就是这样做的,Maven中也有这样的一个文件夹,叫本地仓库。本地仓库就是本地电脑上的一个文件夹,存放jar包。

结论:Maven是集中式依赖管理的项目构建工具。

3.如果我现在要使用spring-core的jar包,而本地仓库中没有怎么办?

本地不可能有所有的jar包,但是可以通过网络去下载,去哪下呢?

Maven中心仓库(远程仓库):是Maven官方维护的,存储了全球知名开源的jar包。

@RestController

演示:中心仓库中看spring的jar包

这个过程有没有什么问题?

1545642705625

例子:买饮料 品牌(标识)

我们的项目如何告诉本地仓库要什么jar包呢?怎么去标识一个jar包(有唯一标识就可以确定一个jar包)?

Maven是通过坐标来标识jar包的。

Maven坐标

  1. 组织名 公司域名倒叙
  2. 项目名
  3. 版本号

演示:spring-core的坐标

坐标是标签格式的写在配置文件中。

Maven项目的标志就是pom.xml

Maven的规范

回顾IDE规范 解决预留问题:maven的规范是什么样的?----> 项目结构约束对比讲解

约定大于配置,用别人的东西遵守别人的规定

项目结构约束

dangdang

  • src/main/java src存放源代码
  • src/main/resources conf配置文件
  • src/main/webapp
  • src/test/java 存放测试代码
  • src/test/resources 存放测试相关的配置文件
  • target 目标目录 存放class文件
  • pom.xml

项目必须遵守这样的结构

关注下面的标签,发现更多相似文章
评论