Maven基本概念构建+POM+坐标

学习完web 的基础知识,在完成项目时存在的问题
1.一个项目就是一个工程,一个工程是很大的,已经无法使用package 来进行划分,maven可以将一个项目拆分成多个工程,对于庞大的项目是十分方便的
2.在项目中,我们会需要许多的jar 包,使用的时候我们需要将jar 包粘贴复制到lib 下。会出现一个问题,相同的jar 包会重复的出现在同个一工程中。借助于maven,jar 包始终保存”仓库中“,当需要使用jar 包的时候,让工程引用这个接口文件,而不是将jar 包复制
3.有些jar 包的下载也要依赖于maven
4.使用的一个jar 包依赖于另外的jar 包时,需要手动添加,这也是一个十分麻烦的问题。maven 可以自动的帮你添加依赖的jar 包(这依赖于一些组件)

一:maven:是一个针对Java的自动构建工具

1. 构建:一边写的Java代码,框架配置文件,资源,jsp 页面一些图片等静态资源作为“原材料”去“生产”一个项目。项目编译之后 部署到服务器并且启动服务器,项目就可以运行

2. maven(包括tomcat)为项目提供了一个运行环境(一组jar 包的引用)【Java代码是基于类 接口 对象,jar包提供了更多的类接口。代码就可以实现更多的功能】

详解构建:(构建的各个环节,IDE已经帮我们完成)

  1. 清除:将以前编译得到的就的class 文件删除,为下一次编译做准备
  2. 编译:将Java源程序编译成class 文件
  3. 测试:自动测试,自动调用junit程序
  4. 报告:测试程序执行的结果
  5. 打包:动态的web 工程打war 包,Java工程打jar 包【注:使用maven 不会打包测试程序】
  6. 安装:Maven的特定概念-----将打包得到的文件复制到”仓库“中的指定位置
  7. 部署:将动态 web 工程生成的war 包复制到Servlet容器的指定目录下

二:安装Maven核心程序

maven是为Java平台设计,用Java写的所以也是运行在JVM上的

1. 找到JDK的安装目录
2. 解压Maven的核心程序,解压到一个无中文路径下
3. 配置M2_HOME   值:核心程序bin 的上一级
path    值:bin的位置
检验:dos  输入  mvn -v

在这里插入图片描述
三:Maven的核心概念

  1. 约定的目录结构
  2. POM
  3. 坐标
  4. 依赖
  5. 仓库
  6. 生命周期/插件/目标
  7. 继承
  8. 聚合

1.约定的目录结构

在这里插入图片描述
遵守约定的目录结构,Maven在自动化构建的时候,例如编译时才知道Java源文件在哪里
如果我们想要让框架或者是工具知道我们自定义的东西

  1. 用配置的方式告诉框架(在配置文件中写明自定义的东西)
  2. 遵守框架内部存在的约定

例如:log4j.properties 这个配置文件,就是工具规定配置文件的名字必须是这个

在写web 项目的时候:约定>配置>编码

2.常用的Maven命令

执行命令要进入pom.xml目录下在这里插入图片描述

关于插件,我们将所有需要的插件都下载下来,放到一个文件中,然后在pom.xml 文件中更改”本地仓库“的地址
<localReposition>本地仓库地址</localReposition>

3.POM

项目对象模型(将一个项目抽象为一个对象来进行操作和研究)
体现为:pom.xml 对于maven 工程是核心的配置文件,与构建有关的所有一切都在这个配置文件中进行说明(相当于动态web 项目中的web.xml)

4.坐标

使用三个坐标唯一定位仓库中的一个Maven工程

  1. grounpid : 域名倒叙+ 项目名称
  2. artifactid : 模块名(就是约定目录的根目录)
  3. version : 版本(同一个工程一般有好几个版本的更新修改)

将坐标连起来就可以唯一确定一个Maven工程

5.Maven的仓库

Maven仓库中存放的内容:Maven工程
1.Maven自身所需要的插件
2. 第三放框架和JAR 包
3. 自己开发的Mavne工程

在Maven仓库中虽然存放的东西不太一致,但是都可以使用坐标唯一定位,使用同一个规范管理

首次运行完mvn -version后,会在用户目录下创建一个.m2的目录(比如:C:\Users\当前用户名.m2),这个目录是maven的“本地仓库”,仓库是maven中一个很重要的概念。之前的项目中使用jar 包都要单独复制一份,并且一旦jar 包要升级就只能一个一个的改,在使用和管理上都十分的麻烦。Maven它在每台机器上创建一个本机仓库,把本机上所有maven项目依赖的jar包统一管理起来,而且这些jar包用“坐标”来唯一标识这样所有maven项目就不需要再象以前那样把jar包复制到lib目录中,整个maven项目看起来十分清爽
为了脱离C盘我们也可以手动改变本地仓库的地址 :https://www.cnblogs.com/jtestroad/p/8393257.html
坐标和仓库中地址的对应关系:
在这里插入图片描述

Maven 依赖

7.生命周期=构建过程

与maven 的构建过程是相关的,maven 的构建过程是按照一定顺序的(在上一个步骤完全正确的情况下开能进行下一个构建步骤,不正确就会从头开始)

  1. 生命周期的各个阶段仅仅定义了要执行的任务是什么
  2. 各个阶段和插件的目标是对应的
  3. 相似的目标有特定的插件来完成

Mavne的总结:

maven 是一个项目对象模型,管理工具
项目对象模型:maven 有约定的项目目录结构和构建过程
管理工具:jar包(依赖)都在maven 的仓库中,方便使用和减少大型项目的jar 包冲突,和对jar 包的管理。并且对一个大型的项目分模块开发时,各个模块的开发更能在一个统一的标准下开发

猜你喜欢

转载自blog.csdn.net/Stitch__/article/details/88091692