• Maven(一)——快速上手Maven


    Maven概述


    Maven是专门用于管理和构建Java项目的工具,它的主要功能有:

    (一)提供了一套标准化的项目结构

    不同的IDE项目结构是不一样的,如IDEA创建的项目导入eclipse是运行不了的。但maven提供了一个标准,使得项目可以在不同的IDE中都可以成功运行。

    maven标准化后的项目结构如下:

    image-20220525123339198

    (二)提供了一套标准化的构建流程

    Maven提供了简单的指令使得可以简单的完成一系列的操作。

    image-20220525123510333

    (三)提供了一套依赖管理机制

    依赖管理:管理你项目所依赖的第三方资源,如jar包、插件等。

    image-20220525123936736

    对于依赖管理来说,下载jar包和版本问题很繁琐,而通过maven的配置文件进行简单的配置就可以完成这个过程。

    image-20220525124202589

    项目管理中不仅仅只有maven这样的工具,但是从下面的市场占有率来看,maven的确是目前项目管理的主流。

    image-20220525124352641


    Maven简介


    Apache(阿帕奇基金组织) Maven是一个项目管理和构建工具,它基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建、报告和文档。如果想了解详细内容可以前往官网Maven – 欢迎来到 Apache Maven

    Maven模型如图所示:

    image-20220525125055511

    项目对象模型如下:

    image-20220525125414360

    依赖管理模型如下:

    image-20220525125346735

    对于上面的示例图片中,我们需要关注一个结构,这个结构我们称其为jar包:

    <groupId></groupId> //项目隶属的组织名称
    <artifactId></artifactId> //模块名称
    <version></version> //项目版本号
    
    • 1
    • 2
    • 3

    通过简单的命令就可以找到各种jar包并不是突然的,这个jar包都在maven仓库中。

    Maven的仓库分为三种:本地仓库,中央仓库和远程仓库。本地仓库有一些常用的jar包;中央仓库是由Maven团队维护的全球唯一的仓库,这个仓库中拥有齐全的开源jar包;而远程仓库(私服)一般由公司团队搭建的私有仓库,毕竟中央仓库不再国内,连接下载的速度很慢,为此,搭建一个私人的仓库,结构和Maven团队的仓库差不多是十分必要的。

    当项目需要导入所需的jar包,maven首先先去本地仓库寻找,如果存在则直接导入,如果不在则去中央仓库寻找并下载,下载到本地仓库后再导入项目。

    如果私人或公司假设了远程私服仓库,那么项目在导入所需jar包时如果本地仓库没有,则需去远程仓库找,如果远程仓库找不到则需去中央仓库下载,不过一般私服是完全克隆中央仓库的,所以应该不存在找不到的问题


    Maven的安装


    下载Maven

    从官网中下载Maven.zip包。

    image-20220525132221409

    点击download进入以下页面。

    image-20220525132252253

    点击指示位置,稍等几秒下载完毕,下载后解压在一个你喜欢的位置。

    配置环境变量

    接下来配置环境变量,赋值你maven包的根位置。

    image-20220525132401719

    然后打开环境变量,在系统变量下新建一个MAVEN_HOME,将maven安装的位置粘贴进去。

    image-20220525132446690

    然后点击系统变量中的path,进行编辑,然后新建%MAVEN_HOME%\bin,如下所示:

    image-20220525132528331

    做完上述的一切后打开cmd,然后输入mvn -version查看mvn是否安装成功。

    image-20220525132724101

    配置本地仓库

    在maven创建一个目录mvn_resp,而后我们将使用这个目录作为maven的本地仓库。

    image-20220525133131243

    而后打开apache-maven-3.8.5\conf\setting.xml。我们要修改本地仓库信息。找到这一行:

    image-20220525133353506

    找到后将刚刚创建目录的位置复制给它即可。

    配置阿里云私服

    同样地,修改该配置文件setting.xml中的mirrors标签。

    image-20220525133742956

    我们复制如下的xml内容并粘贴到mirror标签中。

    <mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>https://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    image-20220525134032372

    Maven的基本使用


    命令使用

    如果你想要用Maven的标准格式创建一个项目,只需在选择项目时以Maven的形式创建即可。

    image-20220525140508330

    image-20220525143733886

    在没有配置IDEA的情况下,我们可以在项目根目录打开黑窗口来完成编译、清理、测试、打包、安装等一系列操作。

    mvn compile
    mvn clean
    mvn test
    mvn package
    mvn install
    
    • 1
    • 2
    • 3
    • 4
    • 5

    生命周期

    对于同一个生命周期来说,如果你执行后面的命令,前面的命令会自动执行。

    maven的生命周期分为三段,分别是clean清理工作,default核心工作和site产生报告和发布站点。

    image-20220525142611426

    IDEA配置Maven


    一般来说IDEA自带Maven,但是我们可以使用自己的maven。

    image-20220525143027232

    然后还需修改配置文件和本地仓库。

    image-20220525143224316

    导入maven项目

    image-20220525144241285

    依赖管理


    怎么写依赖模板相信通过前面的学习都已了然于心了。

    只需写出坐标结构,然后写出你想要的模块名称,本地仓库就会自动提示。

    导入后,如果本地仓库没有该jar包,你可以点一下下图那里的按钮,他能够去中央仓库或私服下载。

    image-20220525150429179

    同样地,当你将依赖的xml内容删掉时,我们也需要按那个按钮,使jar包消失。

    如果你使用的是IDEA,可以在配置文件下按alt+insert选择depandency快速搜索jar包。IDEA会自动帮你写好依赖模板。

    总结如下:

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

    依赖范围


    通过设置坐标的依赖范围,可以设置对应jar包的作用范围:编译环境、测试环境、运行环境。

    image-20220525151724343

  • 相关阅读:
    Java NIO与IO的区别和比较
    地推团队怎么接一手app拉新项目?这几个接单平台可以试试看
    【Python】operator模块
    【深耕 Python】Data Science with Python 数据科学(7)书352页练习题
    SPIR-V初窥
    ICM-20948芯片详解(8)
    flash attention的CUDA编程和二维线程块实现softmax
    在vs code中创建一个名为 “django_env“ 的虚拟环境报错?!以下方法可以解决
    4.1 设计模式_单例模式
    计算机竞赛 题目:基于机器视觉opencv的手势检测 手势识别 算法 - 深度学习 卷积神经网络 opencv python
  • 原文地址:https://blog.csdn.net/chengyuhaomei520/article/details/124966865