什么是Maven
- 翻译为“专家”,“内行”
- Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。
- 什么是理想的项目构建?
- 高度自动化,跨平台,可重用的组件,标准化的流程
- 什么是依赖?为什么要进行依赖管理?
- 自动下载,统一依赖管理
- A1.0 依托于 B 2.0 依托于 C3.0
- 有哪些项目信息?
- 项目名称描述等,开发人员信息,开发者信息等
什么是依赖管理
对第三方依赖包的管理,可以连接互联网下载项目所需第三方jar包。
对自己开发的模块的管理,可以像引用第三方依赖包一样引用自己项目的依赖包。
什么是项目构建
项目构建:是一个从编写源代码到编译、测试、运行、打包、部署的过程。
传统项目和maven项目构建的两种方式
传统项目:
打开Idea编写源代码和配置文件,对源代码进行编译,可以使用Junit进行单元测试,把项目打成war包,部署到Tomcat服务器中运行。
maven项目:
maven将项目构建过程进行标准化,每个阶段都可以使用一个命令来完成。
清理 --> 编译 --> 测试 --> 报告 --> 打包 --> 部署
好处:
可以通过命令完成项目构建。(测试:使用mvn tomcat:run的命令来发布运行项目)
maven对每个构建阶段进行规范,有利于大型团队协作开发。
Maven的应用场景
maven的应用场景,开发人员只要按着maven标准的目录结构进行开发即可,然后提交代码。在测试服务器上拉取Java源码,然后可以使用maven的自动化项目构建完成项目的清理、编译、测试、打包和安装部署等。
为什么使用Maven
-
IDE?Eclipse?IDEA?
- 手工操作较多,编译、测试、部署等工作都是独立的,很难一步完成
- 每个人的IDE配置都不同,很容易就出错出现本地代码换个地方编译
-
Ant?
- 没有一个约定的目录结构
- 必须明确让ant做什么,什么时候做,然后编译,打包
- 没有生命周期,必须定义目标及其实现的任务序列
- 没有集成依赖管理
-
Maven?
- 拥有约定,知道你的代码在哪里,放到哪里去
- 拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程
- 只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮你处理其他事情
- 拥有依赖管理,仓库管理
Maven模型
Maven安装
- 安装jdk1.8或以上版本
- 略
- 下载Maven
-
- 地址:Maven – Download Apache Maven
- 下载地址:Index of /dist/maven/maven-3/3.6.0/binaries
- 版本:Maven3.6
-
- 安装Maven
-
- 解压到相应目录即可(无中文路径)
-
Maven安装目录分析
bin:含有mvn运行的脚本
boot:含有plexus-classworlds类加载器框架
conf:含有settings.xml配置文件
lib:含有Maven运行时所需要的java类库
LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三方软件等简要介绍
Maven的环境变量
- 设置MAVEN_HOME环境变量
- 升级时只需要下载最新版本,解压缩重新设置MAVEN_HOME环境变量即可
- 设置MAVEN_OPTS环境变量
- -Xms128m -Xmx512m
- 配置用户范围的settings.xml
- %MAVEN_HOME%/conf/settings.xml 全局的
- ~/.m2/settings.xml 单个用户的
设置MAVEN_HOME环境变量,把maven的解压后的路径添加为变量值
设置Path环境变量,把 %MAVEN_HOME%\bin 添加到Path的变量值末尾,与前面的内容用 ; 隔开,如图:
配置MAVEN_OPTS运行环境变量大小,(解决大型项目内存溢出的问题)
(找到命令改参数治标不治本)
-Xms128m -Xmx512m
验证配置是否完成
下面会不断地出和maven相关的文章,会有一个简单的项目来体验一下。