maven从入门到入门

Maven是一款用于Java平台的自动化构建工具,简化项目工作并管理jar包。它通过POM进行项目配置,自动处理依赖,并提供了如clean、compile、install等命令。本地仓库存储依赖,若无法连接中央仓库,构建可能失败。可通过idea集成maven,方便开发。

目录

简介

安装和配置

常用命令

工作流程

核心概念

POM

坐标

仓库

依赖

idea集成maven插件


简介

一般读作“妹文”。maven是一款服务于java平台的自动化构建工具,即能够自动把动态的Web工程经过编译得到的编译结果部署到服务器。有以下优点:

1、简化工作,节约内存

在传统的java web项目中,jar包都是放在各自的lib目录中,同样的jar包重复的出现在不同的项目工程中,你需要做不停的复制粘贴的重复工作,还占内存。一两个项目还好,若是几十上百个项目呢?借助于maven,可以将jar包保存在“仓库”中,不管在哪个项目只要使用引用即可就行。

2、方便管理

借助于maven我们可以使用统一的规范方式下载jar包,不同的项目在使用jar包的时候,有可能会导致各个项目的jar包版本不一致,导致未执行错误。借助于maven,所有的jar包都放在“仓库”中,所有的项目都使用仓库的一份jar包。

还可以借助maven把一个庞大的项目拆分成多个工程。

3、自动依赖

在以往,一个jar包依赖其他的jar包需要自己手动的加入到项目中,而使用maven它会自动的将依赖的jar包导入进来。

安装和配置

1、下载

LINUX&MAC选择第一,WINDOWS选择第二个。

2、解压maven放在一个非中文无空格的路径下

3、 配置maven的相关环境变量(要保证配置好JAVA_HOME)

  1. 在系统变量增加M2_HOME,路径是maven解压后的根目录
  2. 在环境变量里的path中增加maven/bin的目录
  3. 打开cmd,输入mvn -v,出现下面信息则成功

注:若输入mvn -v显示“mvc 不是内部命令”,则在系统变量的path输入%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem载重启cmd即可。

4、修改默认配置

配置文件位于“安装路径/config/settings.xml”,通常会修改本地仓库和镜像。

  • 修改本地仓库地址

本地仓库用来在本机存储所需的依赖文件,在<localRepository>标签内设置存储位置,如:

<localRepository>F:/MavenLocalRepository</localRepository>
  • 配置镜像

因为maven在本地仓库找不到相关依赖文件会去外网的仓库去下载,一般外网访问会有些问题,所以一般会配置国内的镜像仓库。

<mirror>
    <id>aliyunmaven</id>
    <mirrorOf>*</mirrorOf>
    <name>阿里云公共仓库</name>
    <url>https://maven.aliyun.com/repository/public</url>
</mirror>

常用命令

注意:执行与构建过程相关的Maven命令,必须进入pom.xml 所在的目录。

  1. mvn clean : 清理 
  2. mvn compile : 编译主程序 
  3. mvn test-compile : 编译测试程序 
  4. mvn test : 执行测试 
  5. mvn package : 打包 
  6. mvn install : 安装 
  7. mvn site :生成站点

工作流程

  • Maven 的核心程序中仅仅定义了抽象的生命周期,但是具体的工作必须有特定的插件来完成。而插件本身不包含在Maven核心程序中。
  • 当我们执行的Maven命令需要用到某些插件时,Maven核心程序会首先到本地仓库中查找。
  • 本地仓库的默认位置:[系统登陆用户的家目录] \ .m2\repository
  • Maven核心程序如果在本地仓库中找不到需要的插件,那么它会自动连接外网,到中央仓库下载。
  • 如果此时无法连接外网,则构建失败。
  • 修改默认本地仓库的位置可以让Maven核心程序到我们事先准备好的目录下查找插件 
有时候因为网络波动下载失败可以先去对应的位置将下载的半成品文件删除再次下载

核心概念

POM

含义:Project Object Model 项目对象模型 

pom.xml 对于 Maven工程是核心配置文件,与构建过程相关的一切设置都在这个文件中进行配置。 重要程度相当于web.xml 对于动态web工程。

坐标

使用下面三个向量在仓库中唯一定位一个Maven工程,坐标不可重复。

1、groupid:公司或组织域名倒序+项目名

< groupid>com.atguigu.maven< /groupid>

2、artifactid:模块名

< artifactid>Hello< /artifactid>

3、version:版本

< version>1.0.0< /version>


仓库

仓库的分类 
①本地仓库:当前电脑上部署的仓库目录,为当前电脑上所有Maven工程服务 
②远程仓库 

  1. 私服:搭建在局域网环境中,为局域网范围内的所有Maven工程服务 

  2. 中央仓库:假设在Internet上,为全世界所有Maven工程服务 
  3. 中央仓库镜像:为了分担中央仓库流量,提升用户访问速度

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

  1. Maven自身所需要的插件 
  2. 第三方框架或工具的jar包 
  3. 我们自己开发的Maven工程

不管是什么样的 jar 包,在仓库中都是按照坐标生成目录结构,所以可以通过统一的方式查询或依赖。

依赖

  • 当 A jar 包用到了 B jar 包中的某些类时,A 就对 B 产生了依赖。
  • Maven解析依赖信息时会到仓库中查找被依赖的jar包。 
  • 对于我们自己开发的Maven工程,要使用mvn install 命令安装后就可以进入仓库。

idea集成maven插件

idea自带了maven,位于:

idea安装目录\plugins\maven\lib\maven3

需要在idea的setting里面设置一下maven的目录和使用的配置文件,如: 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值