Maven学习笔记1:Maven基本介绍和安装配置
一、认识Maven
官网
http://maven.apache.org/
上面有最权威的说明,其中包括下载、安装、运行示例,但是是英文版的。
Maven是什么
Maven是一个项目管理工具。
它有何优点呢?
Maven可以使得项目的构建变得简单:传统项目构建过程中,所要用到的一些Jar依赖,都需要自己手动去查找,下载,导入,才能使用,Maven的中央仓库提供我们项目中所需的大多数依赖资源,我们只需要编辑pom文件,Maven就能自动在网上去下载响应的jar包,以供我们使用。那么也就是说Maven的使用是要联网的。
Maven提供统一的构建系统:就是说所有的Maven项目的构建标准是相同的,只要熟悉一个Maven项目,那么就可以看懂所有Maven项目是如何构建的
Maven能干什么
- Maven可以管理jar文件
- 自动下载jar和它的文档,源代码
- 管理jar直接的依赖,比如a.jar需要b.jar,Maven就会自动下载b.jar
- 管理我们需要的jar版本
- 帮使用者编译程序,把java编译成class
- 测试代码
- 打包文件,形成jar文件或war文件
- 部署项目
Maven构建项目的步骤
- 清理:删除以前的编译结果,为新的编译做好准备
- 编译:将java源程序编译为字节码文件
- 测试:针对项目中的关键点进行测试,保证项目在迭代开发过程中关键点的正确性
- 报告:在每一次测试后以标准的格式记录和展示测试结果
- 打包:将一个包含诸多文件的工程封装为一个压缩文件(jar或者war)用于安装和部署,java工程对应jar,web工程对应war
- 安装:在Maven环境下,特指将打包的结果——jar或war安装到本地仓库中
- 部署:将打包结果部署到远程仓库或将war包部署到服务器上运行
Maven核心概念
- POM:一个叫做pom.xml的文件,官方叫做项目对象模型,Maven帮我们做的事情都是安装这个文件的要求去做的,所以可以通过编辑这个文件去控制Maven的项目构建、依赖管理、打包安装等。
- 约定的目录结构:Maven项目目录和文件位置是有统一规范的
- 坐标:一个唯一的字符串,用来表示资源
- 依赖管理:管理项目中可以使用的jar文件
- 仓库管理:资源存在的位置
- 生命周期:Maven工具构建项目的过程,就是生命周期
- 插件和目标:执行Maven构建的时候用的工具就是插件,目标就是我们要做的事情,比如打包,安装等
- 继承:
- 聚合
后面会逐一详细介绍。
二、Maven的安装和配置
第一步:去官网下载Maven压缩包
第二步:解压到一个文件夹既是安装完成
注意两个重要的东西:bin目录下的mvn.cmd,构建项目时需要用这个;conf目录下的settings.xml,这是Maven的配置文件,之后的修改本地仓库位置的操作在这里进行
第三步:配置环境变量
此电脑--->右键属性--->高级系统设置--->环境变量
在系统环境变量中添加一个环境变量:
变量名:M2_HOME
变量值:D:\Programs\Maven\apache-maven-3.8.1
(Maven解压的路径,因人而异)
在path中添加:%M2_HOME%\bin
注意:这里需要配置JAVA_HOME并指定jdk路径
验证环境变量是否配置成功:在命令行中输入mvn -v
显示如下信息,表示配置成功
三、设置本机存放资源的目录位置
Maven有一个本地仓库,用来存放Maven插件啊各种资源,这些资源会在第一次使用Maven编译项目的时候下载到本地仓库,本地仓库的默认位置是:
C:\Users\Admin.m2\repository
(这里的Admin是我的用户名)
下面介绍修改这个位置的方法:
修改Maven配置文件
Maven安装目录/conf/settings.xml(防止修改失误,最好先备份一个)
修改<localRepository>
标签
这里我修改为D:\ProgramData\Maven_work\Repository,注意反斜杠要修改为斜杠,路径中不要有中文
修改之后
修改之后的效果是,项目中使用Maven的时候,会使用这个仓库中的资源,之后再从网络上下载的资源也会存放到这个仓库中去,直到下次修改仓库位置。
最新文章
- zabbix监控Java 8080端口
- Android Fragment生命周期
- mysql 存储引擎
- 【Solr】 solr对拼音搜索和拼音首字母搜索的支持
- SRM 594 DIV1 250
- Android开发--环境的配置
- PostgreSQL 三节点集群故障模拟及恢复
- Smarty模板
- 我们为什么要使用 href=";javascript:void(0)";
- 武汉科技大学ACM :1001: A+B for Input-Output Practice (I)
- HDU 5572 An Easy Physics Problem (计算几何+对称点模板)
- mybatis 一点整理
- JUnit4快速入门
- 《深入浅出nodejs》读书笔记(2)
- 【Go】slice的一些使用技巧
- A标签中 href 和 onclick用法、区别、优先级别
- [转]ui-grid User can&#39;t select the row by clicking the select checkbox available in the respective row when enableFullRowSelection : true";
- Scala学习(六)练习
- 01.File文件基本操作
- [PHP]PHP自定义遍历目录下所有文件的方法
热门文章
- JAVA随机获取集合里的元素
- 在Windows系统上安装和配置Jenkins自动发布
- 在安装SDK8.1和Visual Studio 2017时,提示“已停止工作”
- arm开发环境搭建
- python更改图片后缀名为jpg格式
- jquery.easyui.min.js:12401 Uncaught TypeError: Cannot read property &#39;combo&#39; of undefined jquery.easyui.min.js:12401
- 微信小程序通过经纬度计算两点之间距离
- 复习笔记,javadoc生成文档总结
- 修改AXI UART D16550 FIFO深度的过程记录
- Vue系列---【自定义vue组件发布npm仓库】