Maven基础使用

Maven是一款Java项目管理工具,用于自动化构建、包管理和依赖管理。它通过pom.xml文件定义项目依赖,利用中央仓库和本地仓库下载与存储jar包。文章介绍了Maven的安装配置,包括修改本地仓库路径和镜像地址,以及基本命令和生命周期,如编译、测试和打包。此外,还讲解了在IDEA中配置Maven,创建项目,导入和管理jar包依赖的方法。
摘要由CSDN通过智能技术生成

Maven基础使用

1. Maven概述

1.1 Maven是什么?

Maven是一款服务于Java平台的自动化构建工具。Maven 作为 Java 项目管理工具,它不仅可以用作包管理,还有许多的插件,可以支持整个项目的开发、打包、测试及部署等一系列行为。

传统工程我们直按把jar包放置在项目中, Maven工程真正的jar包放置在仓库中,项目中只用放置jar包的坐标。不使用Maven工具,当做 Java 项目需要第三方依赖包时,将别人打好的 Jar 包下载到本地,然后手动指定给项目。另外,比如版本控制,需要新版本怎么办,重新下载,重新指定,这个过程操作麻烦。而用了 Maven 之后,需要什么包,直接在 pom.xml 中添加几行 xml 代码(添加所依赖jar包的坐标),指定包名、版本等,就可以了,方便开发。

1.2 Maven可以帮我们解决什么样的问题呢?

  • 构建工程,
  • 管理jar,
  • 编译代码,
  • 自动运行单元测试,
  • 打包
  • 生成报表,
  • 部署项目,生成web站点

1.3 Maven仓库的概念

Maven仓库用来存放Maven管理的所有Jar包。分为:本地仓库 和 中央仓库。

  • 本地仓库:Maven本地的Jar包仓库。
  • 中央仓库: Maven官方提供的远程仓库。

当项目编译时,Maven首先从本地仓库中寻找项目所需的Jar包,若本地仓库没有,再到Maven的中央仓库下载所需Jar包。

1.4 Maven的目录结构

Maven工程目录结构

在这里插入图片描述

图中有一个target目录,是因为将该java项目进行了编译,src/main/java下的源代码就会编译成.class文件放入target目录中,target就是输出目录。 作为一个 maven 工程,它的 src 目录和 pom.xml 是必备的。 进入 src 目录后,我们发现它里面的目录结构如下:

在这里插入图片描述

src
	--src
		--main
			--java
			--resources
			--webapp
		--test
        	--java
        	--resources
target
pom.xml

2. Maven的安装和配置

2.1 Maven官网下载Maven

Maven官网:https://maven.apache.org/

在这里插入图片描述


Maven下载:https://maven.apache.org/download.cgi

在这里插入图片描述

这里本人用的版本是3.6.3的版本


之后找一个目录将压缩包解压至你要安装的目录即可

2.2 Maven的配置

1. 复制Maven的根路径

在这里插入图片描述



2. 配置Maven的环境

打开系统环境变量: 此电脑>高级系统设置>环境变量>

新建环境变量

在这里插入图片描述


编辑Path变量

在这里插入图片描述

%MAVEN_HOME%/bin

4. 验证Maven下载成功

启动CMD命令工具:

输入:mvn -v

在这里插入图片描述

2.3 修改Maven配置文件

2.3.1 修改本地仓库的路径

Maven根路径->conf-setting.xml

本地仓库 用来存储从远程仓库或者中央仓库下载的插件和jar包,项目使用一些插件或jar包 优先从本地仓库查找 默认本地仓库的位置在user.dir/.m2/repository,{user.dir}表示 windows 用户目录。一般都是在C盘中,在开发Maven项目过程中会下载非常多的jar包,而Maven默认的下载位置在C盘,小Du的Maven仓库已经达到了10G左右,如果不及时的修改,C盘很容易撑爆,且C盘容易损毁。

在这里插入图片描述

<localRepository>目录路径</localRepository>

这里建议是在Maven的根路径下新建一个maven-repo的目录

Maven根路径\repo

<localRepository>Maven根路径\repo </localRepository>

2.3.2 修改Maven的下载镜像地址

由于Maven默认的中央仓库的服务器是在国外,下载项目所需要的Jar包非常的慢所以换成国内的中央仓库

打开配置文件settings.xml文件

<mirror>
		<id>nexus-aliyun</id>
		<mirrorOf>central</mirrorOf>
		<name>Nexus aliyun</name>
		<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

在这里插入图片描述

3. Maven的基本命令和生命周期

3.1 Maven的基本命令

  • **-v:**查询Maven版本

    本命令用于检查maven是否安装成功。

    Maven安装完成之后,在命令行输入mvn -v,若出现maven信息,则说明安装成功。

  • compile:编译

    将java源文件编译成class文件

  • test:测试项目

    执行test目录下的测试用例

  • package:打包

    将项目打成jar包

  • clean:删除target文件夹

  • install:安装

    将当前项目放到Maven的本地仓库中。供其他项目使用

3.2 Maven的生命周期

Maven 构建项目生命周期描述的是一次构建过程经历经历了多少个事件

Maven 对项目构建的生命周期划分为3套

  • clean:清理工作
  • default:核心工作,例如编译,测试,打包,安装等
  • site:产生报告,发布站点等

4.IDEA配置Maven和使用

4.1 IDEA配置Maven

打开Idea在Settings(快捷键Ctrl+Alt+s)中搜素Maven

在这里插入图片描述

4.2 Maven坐标

什么是坐标

  • Maven 中的坐标是资源的唯一标识
  • 使用坐标来定义项目或引入项目中需要的依赖

Maven 坐标主要组成

  • groupId:定义当前Maven项目隶属组织名称(通常是域名反写,例如:com.baidu)
  • artifactId:定义当前Maven项目名称(通常是模块名称,例如 order-service、goods-service)
  • version:定义当前项目版本号
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>8.0.28</version>
</dependency>

4.3 Idea创建Maven项目

创建Maven模块
在这里插入图片描述编写坐标
在这里插入图片描述

4.4 使用坐标导入Jar包

  • 在 pom.xml 中编写 <dependencies> 标签
  • <dependencies> 标签中 使用 <dependency> 引入坐标
  • 定义坐标的 groupId,artifactId,version
  • 点击刷新按钮,使坐标生效

比如导入Junit测试单元的Jar包

在这里插入图片描述

代码测试

在这里插入图片描述

如果在引入别的Jar包,就可以在Dependenices当中继续添加坐标即可

新引入MySQL的驱动包

<?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>

    <groupId>com.song</groupId>
    <artifactId>maven-demo01</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <!-- junit测试包 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!-- mysql的驱动包 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.27</version>
        </dependency>
    </dependencies>

</project>

4.5 Jar包的搜索

在实际开发中或者是在练习中,需要用到指定的Jar包,那么怎么获取所需的坐标呢?

网站搜索:

国外:https://mvnrepository.com/

在这里插入图片描述

国内:https://mvn.coderead.cn/

在这里插入图片描述

IDEA插件:maven-search
在这里插入图片描述

使用插件:Tools->Maven Search

在这里插入图片描述

4.6 jar包的依赖范围

通过设置坐标的依赖范围(scope),可以设置 对应jar包的作用范围:编译环境、测试环境、运行环境
在这里插入图片描述

依赖范围编译classpath测试classpath运行classpath例子
compileYYYlogback
test-Y-Junit
providedYY-servlet-api
runtime-YYjdbc驱动
systemYY-存储在本地的jar包

<scope>默认值:compile

   | Junit             |

| provided | Y | Y | - | servlet-api |
| runtime | - | Y | Y | jdbc驱动 |
| system | Y | Y | - | 存储在本地的jar包 |

<scope>默认值:compile

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值