Maven简介java
一、Maven是一款服务于Java平台的自动化构建工具。框架
二、构建:ide
- 概念:以“Java源文件”、“框架配置文件”、“JSP”、“HTML”、“图片”等资源为“原料”,去“生产”一个能够运行的项目的的过程工具
- 编译:Java源文件【User.java】->编译->Class字节码文件【User.class】->交给JVM去执行测试
- 部署:一个BS项目最终运行的并非动态Web工程自己,而是这个动态Web工程的“编译结果”插件
三、构建过程当中的各个环节xml
- 清理:将之前编译获得的旧的class字节码文件删除,为下一次编译作准备对象
- 编译:将Java源程序编译成class字节码文件继承
- 测试:自动测试,自动调用junit程序生命周期
- 报告:测试程序执行的结果
- 打包:动态Web工程打war包,Java工程打jar包
- 安装:Maven特定的概念,将打包获得的文件复制到“仓库”中的指定位置
- 部署:将动态Web工程生成的war包复制到Servlet容器的指定目录下,使其能够运行
四、自动化构建
安装Maven核心程序
一、检查JAVA_HOME环境变量
二、解压Maven核心程序的压缩包,放在一个非中文无空格路径下
三、配置Maven相关的环境变量
M2_HOME
path
四、运行mvn -v 命令查看Maven版本
Maven的核心概念
一、约定的目录结构
二、POM
三、坐标
四、依赖
五、仓库
六、生命周期/插件/目标
七、继承
八、聚合
第一个Maven工程
一、建立约定的目录结构
根目录:工程名
src目录:源码
pom.xml文件:Maven工程的核心配置文件
main目录:存放主程序
test目录:存放测试程序
java目录:存放Java源文件
resources目录:存放框架或其余工具的配置文件
经常使用Maven命令
注:执行与构建过程相关的Maven命令,必须进入pom.xml所在的目录
经常使用命令:
mvn clean:清理
mvn compile:编译主程序
mvn test-compile:编译测试程序
mvn test:执行测试
mvn package:打包
mvn install:安装
mvn site:生成站点
POM
一、含义:Project Object Model项目对象模型
二、pom.xml对于Maven工程是核心配置文件,与构建过程相关的一切设置都在这个文件中进行配置
坐标
一、数学中的坐标
二、Maven中的坐标
使用下面三个向量在仓库中惟必定位一个Maven工程
groupid:公司或组织域名倒叙+项目名
artifactid:模块名
version:版本
仓库
一、仓库的分类
本地仓库:
远程仓库:
- 私服:架设在当前局域网环境下,为当前局域网范围内全部Maven工程服务
- 中央仓库:架设在Internet上,为全世界全部Maven工程服务
- 中央仓库镜像:分担中央仓库的流量,提高用户访问速度
二、仓库中保存的内容:Maven工程
- Maven自身所须要的插件
- 第三方框架或工具的jar包
- 咱们本身开发的Maven工程
依赖
一、Maven解析依赖信息时会到本地仓库中查找被依赖的jar包
- 对于咱们本身开发的Maven工程,使用mvn install命令安装后就能够进入仓库
二、依赖的范围
- compile范围依赖:对主程序、测试程序都有效、参与打包
- test范围依赖:对主程序无效、对测试程序有效、参与打包
- provided范围依赖:对主程序、测试程序有效、不参与打包、不参与部署
生命周期
一、各个构建环节执行的顺序:不能打乱顺序,必须按照既定的正确顺序来执行
二、Maven的核心程序中定义了抽象的生命周期,生命周期中各个阶段的具体任务是由插件来完成的
三、Maven核心程序为了更好的实现自动化构建,按照如下特色执行生命周期中的各个阶段:
即不管要执行生命周期中的哪个阶段,都从这个生命周期最初的位置开始执行
四、插件和目标
- 生命周期的各个阶段仅仅定义了要执行的任务是什么
- 各个阶段和插件的目标是对应的
- 类似的目标由特定的插件来完成
在Eclipse中使用Maven
一、Maven插件:Eclipse内置
二、Maven插件的设置
- installations:指定Maven核心程序的位置。
- user settings:指定conf/settings.xml的位置,进而获取本地仓库的位置