maven 基础理论

1.maven 是什么

maven 是一款服务于java平台的自动化构建工具

Make--->Ant---->Maven-->Gradle

2.什么是构建

概念:以java源文件、框架配置文件、jsp html 图片等资源为原材料,去生产一个可运行的项目过程。

   编译

   部署

   搭建

编译:java源文件-->编译--Class字节码文件--->去交给jvm执行

maven 的核心概念

1.约定的目录结构

2.pom

3.坐标

4.依赖

5.仓库

6.生命周期/插件/目录

7.继承

8.聚合

第一个maven的工程

1.创建的约定的目录结构

根目录:工程名

src目录:源码

pom.xml文件:maven工程的核心配置文件

main目录:存放主程序 

test目录:存放测试程序

java目录:存放java源文件

resources目录:存放框架或其他工具的配置文件

为什么要遵守约定目录结构呢?

maven:要负责我们这个项目的自动化构建,以编译为例,maven要想自动进行编译,那么必须知道源文件存放在哪里

常用的maven命令

注意:执行与构建过程相关的maven 命令,必须进入pom.xml所在的目录与构建过程相关:编译、测试、打包、。。。。。

常用的命令

mvn clean:清理

mvn compile:编译

mvn test-compile:编译测试程序

mvn test:执行测试

mvn package:打包

关于联网的问题

1.maven的核心程序中仅仅定义了抽象的周期,但是具体的工作必须由特定的插件来完成

而插件本身并不包含在maven的核心程序中

2.当我们执行的maven命令需要用到某些插件时,maven核心程序首先到本地仓库中查找。

3.本地仓库的位置默认.\m2\repository

4.maven核心程序如果在本地仓库中找不到需要的插件,那么它会自动连接外网到中央仓库下载

5.如果此时无法连接外网,则构建失败

maven 的pom   project object model 项目对象模型

dom document object model 文档对象模型

pom.xml对于maven 工程是核心配置文件,与构建过程相关的一切设置都在这个文件中配置

maven的坐标

使用下面三个向量在仓库中唯一定位一个maven工程

groupid:公司或组织域名倒叙+项目名

artifactid:模块名

version:版本

maven工程的坐标与仓库中路径的对应关系

maven仓库

1仓库的分类

本地仓库:当前电脑上部署的仓库目录,为当前电脑上所有maven工程服务

远程仓库:

1.私服:架设在当前局域网环境下,为当前局域网范围内的所有maven工程服务

2.中央仓库:架设在Internet上,为全世界所有maven工程服务

中央仓库镜像:为了分组中央仓库的流量,提升用户访问速度

仓库中保存的内容:maven工程

①maven自身所需要的插件

②第三方框架或工具的jar包

③我们自己开发的maven程序

依赖

①maven解析依赖信息是会到本地仓库中查找被依赖的jar包

对于我们自己开发的maven工程,使用 mvn install命令安装后就可以进入仓库

②依赖的范围

compile范围依赖

对主程序是否有效  有效

对测试程序是否有效  有效

是否参与打包 :参与

是否参与部署:参与

test范围依赖

对主程序是否有效:无效

对测试程序是否有效:无效

是否参与打包:不参与

是否参与部署:不参与

provided范围依赖

对主程序是否有效:有效

对测试程序是否有效:有效

是否参与打包:不参与

是否参与部署:不参与

maven的生命周期:
①.各个构建环节执行的顺序:不能打乱顺序,必须按照既定的正确的顺序执行

clean生命周期

default生命周期

site申明周期

注:非compile的依赖不能传递

依赖的原则

作用:解决模块工程之间jar冲突问题

猜你喜欢

转载自www.cnblogs.com/chengxuyuanIng/p/12735328.html