maven1-概述

引言

搭建一个SSM环境的步骤是java

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

第一步导入jar包这一步就很繁琐,若是咱们要搭建一个SSM的环境,少说也要导入十来个jar包web

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

maven

Maven介绍

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

就是一个工具 至关于tomcat Tomcat帮咱们作了什么事儿呢 发布项目 maven帮咱们作项目管理网络

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

Maven特色

能够摆脱IDE的规范

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

经过命令快速构建项目

如今构建项目:经过IDE工具构建的webapp

Maven:经过一个指令就能够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

项目必须遵照这样的结构

相关文章
相关标签/搜索