Maven的概述及基本使用示例详解

 更新时间:2023年07月24日 09:58:40   作者:叶落闲庭  
MApache Maven是一个项目管理和构建工具,它基于项目对象模型POM的概念,通过一小段描述信息来管理项目的构建、报告和文档,aven是专门用于管理和构建Java项目的工具,本文给大家介绍Maven的概述及基本使用,感兴趣的朋友一起看看吧

一、Maven简介

  • Apache Maven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档
  • 官网:http://maven.apache.org/
    • 项目对象模型(Project Object Model)
    • 依赖管理模型(Dependency)
    • 插件(Plugin)

1.1、Maven概述

  • Maven是专门用于管理和构建Java项目的工具,它的主要功能有:
    • 提供了一套标准化的项目结构
    • 提供了一套标准化的构建流程(编译、测试、打包、发布…)
    • 提供了一套依赖管理机制
  • 依赖管理:
    • 依赖管理其实就是管理你项目所依赖的第三方资源(jar包、插件…)
    • 1.下载jar包
    • 2.复制jar包到项目
    • 3.将jar包加入到工作环境

1.Maven使用标准的坐标配置来管理各种依赖2.只需要简单的配置就可以完成依赖管理

1.2、Maven仓库

  • 仓库:用于存储资源,包含各种jar包
  • 仓库分类:
  • 本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源
  • 远程仓库:非本机电脑上的仓库,为本地仓库提供资源
  • 中央仓库:Maven团队维护,存储所有资源的仓库
    • 私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源
  • 私服的作用:
    • 保存具有版权的资源,包含购买或自主研发的jar
    • 中央仓库中的jar都是开源的,不能存储具有版权的资源

一定范围内共享资源,仅对内部开放,不对外共享

1.3项目获取jar包过程

  • 假设有两个项目,项目1需要A这个jar包,,在项目1中写好配置后,Maven就会自动的到本地仓库中寻找是否有A这个jar包,如果没有,Maven就会自动地到中央仓库去找,在中央仓库找到了,此时Maven会自动地下载中央仓库里的A的jar包到本地仓库,这时项目1就引用了A这个jar包。
  • 若项目2也要使用A这个jar包,项目2写好了配置后,Maven会自动地到本地仓库寻找,本地仓库已经有了A这个jar包,此时直接引用到项目2当中完成功能。

  • 若存在远程仓库(私服)的情况下,项目2需要引用B这个jar包,Maven会现在本地仓库找,发现没有后回去私服找B这个jar包,若是没有的话,会到中央仓库,在中央仓库找到后Maven会下载B这个jar包到私服,然后传递给本地仓库,这时项目2就可以引用B的jar包了。

二、Maven使用

2.1Maven安装配置

  • 1.解压安装包apache-maven-3.9.1-bin.zip即安装完成
  • 2.配置环境变量MAVEN_HOME为安装路径的bin目录
  • 3.配置本地仓库:修改conf/settings.xml中的<localRepository>为一个指定目录
  • 4.配置阿里云私服:修改conf/settings.xml中的<mirros>标签,为其添加如下标签:
<mirror>
	<id>alimaven</id>
	<name>aliyun maven</name>
	<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	<mirrorOd>central</mirrorOf>
</mirror>

2.1.1配置环境变量

1.找到Maven的安装目录,复制路径

2.点击此电脑->属性:

3.点击高级系统设置

4.点击环境变量

5.点击系统变量的新建

6.变量名为MAVEN_HOME,变量值为maven安装路径

7.点击系统变量中的Path,单击编辑

8.选择新建->确定

9.添加环境变量%MAVEN_HOME%/bin添加完成

此时打开cmd窗口输入mvn -version出现如下结果表示配置成功。

2.1.2配置本地仓库

1.找到Maven安装目录下的conf文件夹,并单击settings.xml文件

2.配置如下代码

  • <localRepository>D:\MyApp\Maven\apache-maven-3.9.1\mvn_resp</localRepository>
  • 其中的路径是自己定义的我的是D:\MyApp\Maven\apache-maven-3.9.1\mvn_resp

2.1.3配置阿里云私服

  • 还是在Maven安装目录下的conf文件夹,并单击settings.xml文件
  • 在其中配置找到<mirrors></mirrors>标签并加上如下代码:

2.2Maven基本使用

2.2.1Maven常用指令

  • compile:编译
  • clean:清理
  • test:测试
  • package:打包
  • install:安装

在pom.xml所在目录下按住shift+右键,选择在此处打开Powershell窗口

在窗口中输入mvn compile开始编译,最后在pom.xml所在目录下生成target文件,成功结果如下:

输入mvn clean表示删除target文件

输入mvn package 会把当前的项目打包:

同样的test是测试代码,这里就不做演示了。

2.2.2Maven生命周期

  • Maven构建项目生命周期描述的是一次构建过程经历了多少个事件
  • Maven对项目构建的生命周期划分为3套
  • clean:清理工作
  • default:核心工作,例如编译,测试,打包,安装等
  • site:产生报告,发布站点等
  • 同一生命周期内,执行后边的命令,前边的所有命令会自动执行

总结

到此这篇关于Maven的概述及基本使用的文章就介绍到这了,更多相关Maven基本使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring AI源码分析流式回答(最新推荐)

    Spring AI源码分析流式回答(最新推荐)

    本文我们将重点讲解流式响应的概念与实现,毕竟,AI的流式回答功能与其交互体验密切相关,是提升用户满意度的重要组成部分,我们将通过代码示例来展示这一过程,帮助您更清晰地理解如何在实际应用中进行操作,感兴趣的朋友一起看看吧
    2024-11-11
  • spring aop action中验证用户登录状态的实例代码

    spring aop action中验证用户登录状态的实例代码

    本篇文章主要介绍了spring aop action中验证用户登录状态的实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • java计算任意位水仙花数示例(回文数)

    java计算任意位水仙花数示例(回文数)

    这篇文章主要介绍了java计算任意位水仙花数示例(回文数),需要的朋友可以参考下
    2014-05-05
  • AntDesign封装全局异常处理全局拦截器

    AntDesign封装全局异常处理全局拦截器

    这篇文章主要为大家介绍了AntDesign封装全局异常处理全局拦截器,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • Java Spring JdbcTemplate基本使用详解

    Java Spring JdbcTemplate基本使用详解

    JDBC已经能够满足大部分用户最基本的需求,但是在使用JDBC时,必须自己来管理数据库资源如:获取PreparedStatement,设置SQL语句参数,关闭连接等步骤
    2021-10-10
  • Spring 框架中注入或替换方法实现

    Spring 框架中注入或替换方法实现

    这篇文章主要介绍了Spring 框架中注入或替换方法实现,非常不错,具有参考借鉴价值,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-05-05
  • k8s+springboot+CronJob定时任务部署实现

    k8s+springboot+CronJob定时任务部署实现

    本文主要介绍了k8s+springboot+CronJob定时任务部署实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • SpringCloud Ribbon负载均衡实例解析

    SpringCloud Ribbon负载均衡实例解析

    这篇文章主要介绍了SpringCloud Ribbon负载均衡实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 基于Java和Lua实现IP锁定功能

    基于Java和Lua实现IP锁定功能

    本文主要介绍了 Lua 语言的特点、应用场景、基本语法,以及使用 Redis + Lua 脚本实现限制 IP 多次输入错误密码功能,包括 Lua 脚本示例、参数解释、逻辑流程、执行方式,并给出了 Java 应用示例及代码解释,还阐述了参数传递和使用,需要的朋友可以参考下
    2025-01-01
  • java高级用法之JNA中的Function

    java高级用法之JNA中的Function

    这篇文章主要介绍了java高级用法之JNA中的Function,JAVA中的映射在JNA中就是一个function。通过或者function对象,我们可以实现一些非常强大的功能,下面一起进入文章看看具体内容吧
    2022-04-04

最新评论