当前位置: 首页 > article >正文

全方面熟悉Maven项目管理工具(一)认识Maven、Maven如何安装?

1. Maven

1.1 应用场景:

本地仓库: 我们使用的jar依赖于maven的本地仓库

自动部署: 本地仓库推送到远程仓库,

  1. 远程库通知 Jenkins工具,
  2. Jenkins 调用Maven构建war包,
  3. Jenkins 再调用准备好的脚本程序,将war包部署到docker容器中。当有多个docker容器后,就可以使用kubernetes进行管理,形成云原生

私有仓库: 可以将数据发布到 Nexus 私服中。谁需要就可以通过 Nexus 私服来获取数据

1.2 哪些人需要这门课?

小白: 快速入门

普通开发人员: 开发项目

资深开发人员: 考虑到 jar 包冲突等棘手问题还是需要精通Maven

1.3 三大学习流程:

1.3.1 先学会再说

  • 最小必要知识
  • 快速上手,学完就能用
  • 简单粗暴

1.3.2 Maven 环境开发全流程掌握

  • 基于 JavaWeb 案例使用Maven实现: 搭建环境、功能开发、应用部署
  • 基于 SSM 案例使用Maven实现: 搭建环境、功能开发、应用部署
  • 基于 SpringBoot、SpringCloud 微服务案例使用Maven实现: 搭建环境、功能开发、应用部署

1.3.3 Maven 技术体系全面覆盖

1.3.3.1 理论:
  • 声明周期体系:
    • 声明周期阶段
    • 插件和目标
    • Mojo 开发与配置
  • POM 体系:
    • 四层 POM
    • dependency 标签详解
    • build 标签详解
    • profile 标签详解
  • 属性系统:
    • java 系统属性
    • 系统环境变量
    • project 属性
    • settings 属性
    • 自定义属性
1.3.3.2 操作:
  • Nexus 私服:
    • 搭建
    • 启动和初始化
    • 下载 jar 包
    • 发布 jar 包
    • 引用 jar 包
  • jar 冲突:
    • Maven 插件检测
    • IDEA 插件检测
  • 体系外 jar 包导入:
    • 场景描述
    • 解决方法

2. 为什么要学习Maven?

2.1 Maven 作为依赖管理工具

2.1.1 jar 包的规模

随着我们使用越来越多的框架,或者框架封装程度越来越高,项目中使用的jar包越来越多,项目中,一个模块里面用到上百个jar包是非常正常的

例如下面的例子:我们只用到了 SpringBoot、Springcloud 框架中的三个功能:

  • Nacos 服务注册发现
  • Web 框架环境
  • 图模板技术 Thymeleaf

最终却导入106个 jar 包!

但如果使用Maven来引入这些 jar 包只需要配置三个依赖

2.1.2 jar 包的来源:

jar包所属技术的官网通常是英文界面,网站的结构又不尽相同,甚至找到下载链接还发现需要通过特殊的工具下载

第三方网站提供下载。问题是不规范,在使用过程中会出现各种问题:

  • jar包的名称
  • jar包的版本
  • jar包内的具体细节:类名不同,方法不存在等

而使用Maven 后,依赖对应的jar包能够自动下载,方便、快捷又规范

2.1.3 jar 包之间的依赖关系

框架中使用的jar包,不仅数量庞大,而且彼此之间存在错综复杂的依赖管理。依赖关系的复杂程度,已经上升到了完全不能靠人力手动解决的程度。另外,jar之间有可能产生冲突,进一步增加我们在 jar 包使用过程中的难度

3. Maven 作为构建管理工具

3.1 你没有注意过的构建

你可以不使用 Maven,但是构建必须要做。当我们使用IDEA开发时,构建是 IDEA 替我们做的。

3.2 脱离 IDE 环境仍需构建

在这里插入图片描述

3.3 结论

  • 管理规模庞大的 jar 包,需要专门工具
  • 脱离 IDE 环境执行构建操作,需要专门工具

4. Maven是什么?

Maven 是 Apache 软件基金会组织推虎的一款专门为 java 项目提供构建依赖管理支持的工具

在这里插入图片描述

4.1 构建

java 项目开发过程中,构建指的是使用【原材料生产产品】的过程

  • 原材料:
    • java 源代码
    • 基于 HTML 和 Thymeleaf 文件
    • 图片
    • 配置文件
  • 产品:
    • 一个可以在服务器上运行的项目

构建过程包含的主要的环节:

  • 清理: 删除上一次构建的结果,为下一次构建做好准备
  • 编译: java 源程序编译成 *.class 字节码文件
  • 测试: 运行提前准备好的测试程序
  • 报告: 针对刚才测试的结果生成一个全面的信息
  • 打包:
    • java工程:jar 包
    • Web工程:war包
  • 安装: 把一个 Maven 工程经过打包操作生成的 jar 包或 war 包安装到 Maven 仓库
  • 部署: 将准备好的 jar 包或 war 包部署到服务器上运行
    • 部署 jar 包:把一个 jar 包部署到 Nexus 私服服务器上
    • 部署 war 包:借助相关 Maven 插件(例如 cargo),将 war 包部署到 Tomcat 服务器上

4.2 依赖

如果 A 工程里面用到了 B 工程的类、接口、配置文件等等这样的资源,那么我们就可以说 A 依赖 B。例如:

  • junit-4.12 依赖 hamcrest-core-1.3

依赖管理中要解决的具体问题:

  • jar 包的下载:使用 Maven 之后,jar 包会从规范的远程仓库下载到本地
  • jar 包之间的依赖:通过依赖的传递性自动完成
  • jar 包之间的冲突:通过对依赖的配置进行跳转,让某些 jar 包不会被导入

4.3 Maven 的工作机制

在这里插入图片描述

5. 核心程序的安装

5.1 Maven 官网地址

首页:

Maven – Welcome to Apache Maven

下载地址:

Maven – Download Apache Maven

在这里插入图片描述

6. 解压Maven核心程序

核心程序压缩包:apache-maven-3.8.6-bin.zip,加压到非中文、没有空格的目录。

在解压目录中,我们需要着重关注Maven的核心配置文件:conf/settings.xml

7. 指定本地仓库

默认仓库为:Default: ${user.home}/.m2/repository

由于本地仓库的默认位置是在用户的家目录下,而家目录往往是在 C 盘。

将来Maven仓库中 jar 包越来越多,仓库体积越来越大,可能会拖慢 C 盘的运行速度,影响系统性能。所以建议将 Maven 的本地仓库放在其他盘符下。配置方式如下:

<!--更改 Maven 的settings.xml文件,添加该标签指定保存的路径--> 
<!--配置本地仓库-->
<localRepository>D:\JavaStorage:\maven-repo</localRepository>

记住: 一定要手动创建 <localrepository> 标签并配置地址

注意: 本地仓库本身也需要使用一个非中文、没有空格的目录!

8. 配置阿里云提供的镜像仓库

Maven 下载 jar 包默认访问境外的中央仓库,而国外网站速度很慢。改成阿里云提供的镜像仓库,访问国内网站,可以让 Maven 下载 jar 包的时候速度更快。配置的方式如下:

8.1 原有配置

<mirrors>
    <mirror>
          <id>maven-default-http-blocker</id>
          <mirrorOf>external:http:*</mirrorOf>
          <name>
              Pseudo repository to mirror external repositories initially using HTTP.</name>
        <url>http://0.0.0.0/</url>
        <blocked>true</blocked>
    </mirror>
</mirrors>	

8.2 加入我们的配置

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

9. 配置 Maven 工程的基础 JDK 版本

如果按照默认配置运行,Java 工程使用的默认 JDK 版本是 1.5 ,而我们熟悉和常用的是 JDK 1.8 版本。

  • 找到 settings.xml 配置文件,在 profiles 标签中添加如下标签组

修改配置方式如下:

<profile>    
    <id>jdk-1.8</id>    
    <activation>    
    	<activeByDefault>true</activeByDefault>    
    	<jdk>1.8</jdk>    
    </activation>    
    <properties>    
    	<maven.compiler.source>1.8</maven.compiler.source>    
    	<maven.compiler.target>1.8</maven.compiler.target>    
    	<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>    
    </properties>    
</profile>

10. 配置环境变量

Maven 是一个用 Java 语言开发的程序,它必须基于 JDK 来运行,需要通过 JAVA_HOME 来找到 JDK 的安装位置。

10.1 配置 MAVEN_HOME

在这里插入图片描述

配置环境变量的规律:

  • XXX_HOME 通常指向的是 bin 目录的上一级
  • PATH 指向的是 bin 目录

10.2 配置PATH

编辑 Path 变量,添加变量。具体操作见图:

在这里插入图片描述

11. 测试

打开cmd命令行,输入

mvn -version

如果出来maven相关的版本信息,那么也就代表maven环境安装成功了。


http://www.kler.cn/news/365392.html

相关文章:

  • java脚手架系列10-统一缓存、分布式锁
  • Web3的核心概念:去中心化如何改变互联网
  • 在PHP中,读取大文件
  • 数学建模与优化算法:从基础理论到实际应用
  • Spring Boot:植物健康的智能守护者
  • 全面指南:在 Vue 中优雅封装 HTML <dialog> 组件
  • 使用Angular构建动态Web应用
  • 怎么看AI大模型(LLM)、智能体(Agent)、知识库、向量数据库、知识图谱,RAG,AGI 的不同形态?
  • 使用WPF写一个简单的开关控件
  • 小程序无法获取头像昵称以及手机号码的深度剖析与解决方案
  • 【Fargo】15: 使用mediasoup的UdpSocket发送数据
  • ubuntu20.04上使用 Verdaccio 搭建 npm 私有仓库
  • http 请求返回307
  • UI管理器的使用
  • SVN(Subversion)的介绍和使用
  • 在 Excel 中的单元格内开始一行新文本
  • idea项目搭建的四种方式: 一(以idea2017为例)
  • WPF中的ContentPresenter、ItemsPresenter、ScrollContentPresenter
  • P10424 [蓝桥杯 2024 省 B] 好数 题解
  • 机器学习与神经网络:发展历程及其对社会经济的深远影响
  • 内置数据类型、变量名、字符串、数字及其运算、数字的处理、类型转换
  • windows中git无法通过ssh连接github
  • Unreal Engine5安装Niagara UI Renderer插件
  • 鸿蒙实现相机拍照及相册选择照片
  • Spring Cloud --- Sentinel 熔断规则
  • 51单片机快速入门之 AD(模数) DA(数模) 转换 2024/10/25