Maven快速入门及其POM

复制代码
Maven是一款用于管理和构建Java项目的工具,是Apache旗下的一个开源项目

Maven主要的作用:
1.依赖管理:Maven可以方便快捷的管理项目依赖的资源(jar包),避免版本冲突的问题
    不使用Maven:如果在项目中想要使用某一个jar包,必须在官网中下载对应的jar包,并且导入项目中,十分繁琐
    使用Maven:使用Maven进行项目依赖(jar包)的管理,只需要在pom.xml配置文件中添加对应依赖的坐标即可
在pom.xml文件中添加了依赖坐标之后,Maven会自动根据配置信息描述,去下载对应的依赖;然后在项目中就可以直接使用了

2.项目构建:Maven提供了标准化的跨平台的自动化项目构建方式
    不使用Maven:在完成了项目开发之后,代码需要进行编译、测试、打包、发布等繁琐过程,这些操作是所有的项目都需要的
如果反复进行就显得十分麻烦
    使用Maven:通过Maven中的命令可以便捷完成项目的编译(compile)、测试(test)、打包(package)、发布(deploy)
等操作。并且和Java一样,这些操作都是跨平台的,可移植性极强

3.统一项目结构
    不使用Maven:Java语言的IDE有很多,比如idea和eclipse,不同的开发工具创建出来的Java项目的目录结构是不同的,
导致了一个问题:不同的ide创建的项目不能直接互相导入,开发协同性低
    使用Maven:Maven具有一套标准的Java项目的目录结构,在不同的ide中可以便捷的互相导入

总而言之:Maven是一款最好的管理和构建Java项目的工具

Maven POM

复制代码
Maven 就是通过项目对象模型POM(Project Object Model)进行项目管理和构建的,通过POM中的一段描述信息管理项目构建

Maven模型:
    1.构建生命周期(阶段)
    Maven中的构建流程,提供了便捷的插件进行:如需要编译,可以直接使用compile插件;需要打包,可以直接使用package插件
    2.项目对象模型
    Maven将我们自己的项目抽象成为一个对象模型,拥有自己的坐标(包括:组名(groupId)、模块名(artifactId)和版本(version))
    这样可以便于项目管理、项目集成、标准化构建部署
    3.依赖管理模型
    项目中需要使用已经开发好的jar包时,直接在pom.xml配置文件中导入依赖的坐标即可,这个依赖对应的jar包会在本机的Maven仓库中
 

Maven仓库:Maven用于存储资源、管理各种jar包
仓库的本质就是磁盘中的文件夹,该文件夹用于存储开发中所有的依赖(jar包)和插件
仓库:
    1.本地仓库:计算机上的一个目录,用于存储jar包
    2.中央仓库:由Maven团队维护的全球唯一的官方仓库
    3.远程仓库(私服):一般由公司团队搭建的私有仓库

引入依赖流程:
    当项目中使用坐标引入对应依赖jar包后,
    首先会查找本地仓库中是否有对应的jar包
        如果有,则在项目直接引用
        如果没有,则去中央仓库中下载对应的jar包到本地仓库
    如果搭建远程仓库(私服),jar包的查找顺序则变为: 本地仓库 ——> 远程仓库——> 中央仓库

Maven坐标——version
    SNAPSHOT:功能不稳定,仍然处于开发中的版本(快照版本)
    RELEASE:功能稳定,可以用于发布的版本
相关推荐
YuTaoShao3 分钟前
【LeetCode 热题 100】139. 单词拆分——(解法一)记忆化搜索
java·算法·leetcode·职场和发展
Best_Liu~38 分钟前
策略模式 vs 适配器模式
java·spring boot·适配器模式·策略模式
direction__1 小时前
Java Main无法初始化主类的原因与解决方法(VsCode工具)
java·vscode
帧栈1 小时前
开发避坑指南(29):微信昵称特殊字符存储异常修复方案
java·mysql
每天的每一天1 小时前
面试可能问到的问题思考-Redis
java
青云交2 小时前
Java 大视界 -- Java 大数据在智能安防人脸识别系统中的活体检测与防伪技术应用
java·大数据·生成对抗网络·人脸识别·智能安防·防伪技术·活体测试
学习至死qaq2 小时前
信创产品TongLinkQ安装及springboot2整合使用
java·东方通·tonglinkq
我崽不熬夜2 小时前
Java中基本的输入输出(I/O)操作:你知道如何处理文件吗?
java·后端·java ee
我崽不熬夜2 小时前
Java的异常处理机制:如何优雅地捕获和抛出异常?
java·后端·java ee
Slaughter信仰2 小时前
深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第二章知识点问答(21题)
java·开发语言·jvm