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

news/2024/9/21 14:33:42/文章来源:https://www.cnblogs.com/77cxw/p/18353896

一、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>标签,为其添加如下标签:
1
2
3
4
5
6
<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:产生报告,发布站点等
  • 同一生命周期内,执行后边的命令,前边的所有命令会自动执行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/781418.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

l洛谷 P7870 兔已着陆——题解

洛谷P7870题解传送锚点摸鱼环节 「Wdoi-4」兔已着陆 题目背景 铃瑚和清兰是从月之都到达幻想乡的两只月兔。正因为降落到了幻想乡进行调查,因此她们通过开团子屋制作团子出售的方式,在幻想乡生活。 为了应对越发繁荣的市场,她们向河城荷取购置了一台团子机器,可以高效地生产…

038.Vue3入门,使用keep-alive让组件保持存活

1、App.vue代码如下:<template><button @click="change">切换组件</button><p></p><keep-alive><component :is="tabComponent"></component></keep-alive> </template><script> impo…

铂繁达:如何提升自身能力以更好开展互联网项目

互联网上有很多副业项目可供选择,但为何有些人无法从中获利呢?关键在于执行力,且不同的在线机遇往往需要不同的技能和知识储备。在挑选和选择这些机会时,我们应当首先确保自己拥有所需的技能或具备学习与提升这些技能的意愿。现下大家对副业的需求越来越大。确实,互联网上…

037.Vue3入门,动态组件

1、App.vue代码如下:<template><component :is="tabComponent"></component><button @click="change">切换组件</button> </template><script> import Child1 from "./view/Child1.vue" import Chil…

排列组合:公式及推导

组合数学入门排列组合:公式及推导 引入 定义: 排列:从指定个数的元素中取出指定个数的元素进行排序;(考虑元素的顺序) 组合:从给定个数的元素中仅仅取出指定个数的元素;(不考虑元素的顺序) 加法&乘法原理 加法原理: 完成一个工程可以有 \(n\) 类办法, \(a_i(i\in[1…

USB协议详解第5讲(USB描述符-接口描述符)

1.USB描述符 USB描述符有设备描述符、标准配置描述符、接口描述符、端点描述符、字符串描述符,HID设备有HID描述符、报告描述符和物理描述符。今天主要是学习USB接口描述符的组成。 2.接口描述符组成 前面讲了设备描述符和标准配置描述符,本篇我们讲解接口描述符。首先要明确…

RabbitMQ Web管理界面简介

Overview TotalsQueued messagesReadyNumber of messages that are avaliable to be delivered now.待消费的消息数量 一般来说,如果队列中ready状态的消息数量比较多,则说明消费者的处理能力可能不足,可以考虑适当增加消费者UnackedNumber of messages for which the serve…

并发修改异常 ConcurrentModificationException详解

并发修改异常 ConcurrentModificationException详解异常产生原因:并发修改异常指的是在并发环境下,当方法检测到对象的并发修改,但不允许这种修改时,抛出该异常。异常抛出在ArrayList类中的checkForComodification()方法中。checkForComodification()方法实际上就是当modCo…

2024暑假集训测试21

前言比赛链接。T1 写得和正解差不多但少了个细节炸 long long 了;T2 只会 \(n^3\) 的本来只有 \(50pts\),但考虑出题人大概率会搞一个 \(n\) 越大 \(T\) 越小,所以对于 \(n\) 很大的直接 \(rand\) 正确率还是有的,所以获得了 \(80pts\);T3 不会;T4 没有和 \(n\) 取 \(\m…

线性整数规划的三道经典例题

目录一、背包问题1.模型建立2.代码实现二、指派问题1.模型建立2.代码实现(1)输入目标函数系数(2)输入不等式约束(3)输入等式约束(4)调用函数求解三、钢管切割问题1.问题分析2.模型建立(1)利用枚举法找到料头小于等于0.9的切割方法(2)得到目标函数与约束3.代码实现(…