Maven使用教程

1、什么是Maven?

如今我们构建一个项目需要用到很多第三方的类库,如写一个使用Spring的Web项目就需要引入大量的jar包。一个项目Jar包的数量之多往往让我们瞠目结舌,并且Jar包之间的关系错综复杂,一个Jar包往往又会引用其他Jar包,缺少任何一个Jar包都会导致项目编译失败。

以往开发项目时,程序员往往需要花较多的精力在引用Jar包搭建项目环境上,而这一项工作尤为艰难,少一个Jar包、多一个Jar包往往会报一些让人摸不着头脑的异常。

而Maven就是一款帮助程序员构建项目的工具,我们只需要告诉Maven需要哪些Jar 包,它会帮助我们下载所有的Jar,极大提升开发效率。是一个项目管理工具。

2、下载安装Maven

在Maven的官网即可下载,根据不同系统选择下载,点击访问Apache Maven
在这里插入图片描述

1、环境配置

  1. 添加M2_HOME:对应Maven的解压目录即可。
    在这里插入图片描述
  2. 添加MAVEN_HOME:对应maven的bin目录
    在这里插入图片描述
  3. 编辑Path环境变量:path = %M2_HOME%\bin
    在这里插入图片描述

测试:在cmd窗口输入 mvn -v 查看
显示如下即配置成功:
在这里插入图片描述

2、修改配置文件

通常我们需要修改解压目录下 conf/settings.xml 文件,这样可以更好的适合我们的使用。

注:所有的修改一定要在注释标签外面,不然修改无效。Maven很多标签都是给的例子,都是注释掉的。

2.1、添加国内镜像源

由于国外的镜像资源较慢,所以我们更换为国内的镜像源,这里使用阿里云的镜像源。

更改settings.xml文件下的< mirrors>标签

 //阿里云镜像
<mirrors>
      <mirror>
         <id>nexus-aliyun</id>
         <mirrorOf>*</mirrorOf>
         <name>Nexus aliyun</name>
         <url>http://maven.aliyun.com/nexus/content/groups/public</url>
      </mirror> 
</mirrors>

2.2、本地仓库位置修改

Maven仓库用来存放Maven管理的所有Jar包。

在 < localRepository>标签内添加自己的本地位置路径:

  <!--配置本地仓库 -->
  <localRepository>D:\Maven\apache-maven-3.6.3\maven-repository</localRepository>

Maven基本命令

  1. -v:查询Maven版本:本命令用于检查maven是否安装成功。
    Maven安装完成之后,在命令行输入mvn -v,若出现maven信息,则说明安装成功。

  2. compile:编译
    将java源文件编译成class文件

  3. test:测试项目
    执行test目录下的测试用例

  4. package:打包
    将项目打成jar包

  5. clean:删除target文件夹

  6. install:安装

3、IDEA中使用Maven

1、IDEA下配置Maven

打开Setting设置,找到Maven设置
在这里插入图片描述
1:此处修改为自己解压的Maven目录

2:勾选Override,修改为自己目录下的settings.xml目录

3:修改为自己的本地仓库地址:就是上面修改的本地仓库的位置

2、创建Maven项目

创建一个Maven项目:
在这里插入图片描述

填写项目名称:
在这里插入图片描述

选择Maven文件地址和仓库:
在这里插入图片描述
如果在IDEA配置了Maven,就会默认显示设置内容,就不用填写。

Maven的目录文件结构:
在这里插入图片描述
maven工具栏项目结构:
在这里插入图片描述

4、Maven名词解释

1、POM

Maven项目对象模型(POM-Project Object Model),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。具体下面在细说。

2、坐标

groupId , artifactId , version 三个元素是项目的坐标,唯一的标识这个项目。

  • groupId 项目所在组,一般是组织或公司

  • artifactId 是当前项目在组中的唯一ID;

  • version 表示版本,SNAPSHOT表示快照,表示此项目还在开发中,不稳定。

groupId 和实际项目不一定是一一对应的,maven 有模块的概念,例如 spring-core, spring-context…;

groupId 也不应该只对应公司或组织名,建议具体到项目名,因为公司或者组织下有多个项目,

而artifactId只能代表模块名。

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <scope>test</scope>
</dependency>

3、资源库

本地资源库:用来存储所有项目的依赖关系(插件jar和其他文件)。
默认的文件夹是“.m2”目录 Windows系统 – C:\Documents and Settings{your-username}.m2
中央存储库:当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖下载。
首先,Maven 将从本地资源库获得 Maven 的本地资源库依赖资源,如果没有找到,然后把它会从默认的 Maven 中下载。

5、在IDEA配置Tomcat

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6、POM文件

pom.xml 是Maven的核心配置文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。

执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。

POM 中可以指定以下配置:

  • 项目依赖
  • 插件
  • 执行目标
  • 项目构建 profile
  • 项目版本
  • 项目开发者列表
  • 相关邮件列表信息

1.project下的子元素

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns = "http://maven.apache.org/POM/4.0.0"
    xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
    <!-- 模型版本 -->
    <modelVersion>4.0.0</modelVersion>
    <!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.companyname.project-group,maven会将该项目打成的jar包放本地路径:/com/companyname/project-group -->
    <groupId>com.companyname.project-group</groupId>
 
    <!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 -->
    <artifactId>project</artifactId>
 
    <!-- 版本号 -->
    <version>1.0</version>
    <!--打包方式,没有定义packaging时默认jar-->
    <packaging>jar</packaging>
    <!--项目构件的文件名与坐标是相对应的,一般规则:
      artifactId-version[-classfier-].packaging
      强调:packaging并非一定与构件扩展名一致,例:
      <packaging>maven-plugin</packaging>的构件扩展名为jar -->
   
    <!--项目依赖配置,可以包含一个或者多个<dependency>元素-->
    <dependencies>
        <!--每个依赖的具体配置,可以拥有多个依赖-->
        <dependency></dependency>
    </dependencies>
</project>

2. < dependencies>元素,依赖的配置:

<!--项目依赖配置,可以包含一个或者多个<dependency>元素-->
    <dependencies>
        <!--每个依赖的具体配置-->
        <dependency>
            <!--groupId,artifactId,version基础依赖坐标-->
            <groupId> ...</groupId>
            <artifactId> ...</artifactId>
            <version> ...</version>
            <!--依赖的类型,对应于项目坐标中的packaging,一般不需要声明,默认jar-->
            <type>jar</type>
            <!--依赖范围-->
            <scope>test</scope>
            <!--标记依赖是否可选,默认false-->
            <optional>false</optional>
            <!---->
            <systemPath>{basedir}\src\lib\</systemPath>
            <!--用于排除传递性依赖-->
            <exclusions>
                <!--要排除的具体依赖-->
                <exclusion>
                    <artifactId> ...</artifactId>
                    <groupId> ...</groupId>
                </exclusion>
                .
                .
            </exclusions>
        </dependency>
    </dependencies>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值