MAVEN常用知识点总结

maven

概念

如今我们构建一个项目需要用到很多第三方的类库,如写一个使用Spring的Web项目就需要引入大量的jar包。一个项目Jar包的数量之多往往让我们瞠目结舌,并且Jar包之间的关系错综复杂,一个Jar包往往又会引用其他Jar包,缺少任何一个Jar包都会导致项目编译失败。

以往开发项目时,程序员往往需要花较多的精力在引用Jar包搭建项目环境上,而这一项工作尤为艰难,少一个Jar包、多一个Jar包往往会报一些让人摸不着头脑的异常。

而Maven就是一款帮助程序员构建项目的工具,我们只需要告诉Maven需要哪些Jar 包,它会帮助我们下载所有的Jar,极大提升开发效率。

maven就是用来管理软件项目的,可以对java项目进行全自动构建,管理项目所需的依赖。

maven曾经是jakarta项目的子项目,现在是Apache软件基金会主持的独立Apache项目。

Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

优点和缺点

优点

原来的项目中需要的jar包必须手动“复制”、”粘贴” 到WEB-INF/lib 项目下,而借助Maven,可以将jar包仅仅保存在“仓库”中,有需要使用的工程只需要“引用”这个文件,并不需要重复复制到工程中。

原来的项目中所需要的jar包都是提前下载好的,而Maven在联网状态下会自动下载所需要的jar包。首先在本地仓库中找,找不到就在网上进行下载。

出色的依赖项管理,包括自动更新、依赖想关闭(也称为传递依赖项)

开箱即用的庞大且不断增长的伊利阿酷,并与最大的开源项目进行了安排,可以实时提供最新版本

原来的项目一个项目就是一个工程,而借助Maven可以将一个项目拆分成多个工程。能够轻松同时处理多个项目

由于没有限制依赖的数量,如果出现循环依赖的时候会出现问题,这个时候有两种方式处理,一种是通过

build-helper-maven-plugin 插件来规避,另一种就是重构两个相互依赖的项目。

几乎不需要额外的配置就可以立即访问新功能

缺点:

1.由于需要下载,导入等,导致加载缓慢,或者出现错误,和不稳定

2.缺少对Maven的文档描述(网上一大堆,但是没有标准)

3.中央存储库中的元数据不佳

4.POM.xml做为项目元数据的来源

maven 官网

https://maven.apache.org/

依赖搜索

https'//mvnrepository.com/

下载地址

https://archive.apache.org/dis/maven/maven-3/3.3.9/binaries/apache-maven3.3.9-bin.zip

安装

注意 JDK的版本建议为1.8

环境配置

MAVEN_HOME

path

新增 %MAVEN_HOME%\bin

测试

打开cmd win+r cmd

输入 mvn-v 输出正确的版本信息

maven 项目结构

maven-demo(maven项目名称)

   pom.xml

  src

    main

      java

      resources

    test

      java

      resources

POM文件

POM一个项目的基本信息,用于描述项目如何构建,声明项目依赖等。

  项目配置 项目版本 依赖管理 插件管理 版本管理 构建管理

project    工程根标签

modelVersion 4.0 模型版本

parent parent标签类似java中的继承,复用依赖,减少冗余配置

dependencies 依赖组

dependency 依赖

groupId 工程组标志

artifactId 工程的标志 工程名

version 工程的版本号

properties 依赖配置

dependencyManagement 依赖管理

build 使用maven构建的项目可以直接使用maven build完成项目的编译、测试、打包,无需额外配置。

plugins具体的编译和打包工作是通过其中的plugin配置来实现的

plugin

两种仓库

本地仓库 本地的maven仓库

中央仓库 这里用到的是淘宝的映射

坐标

坐标是jar包的唯一标识,maven通过坐标在仓库中找到所需要的jar包

dependency 依赖

groupId 工程组标志

artifactId 工程的标志 工程名

version 工程的版本号

依赖范围

complie test provided 默认为complie

complie 对主程序、测试程序有效,可以进行部署和打包 spring-core

test 只对测试程序有效 junit

provided 不参与打包与部署 servlet-api

依赖可以进行传递和排除

传递就是在最下面引用之前的工程

排除 <exclusion>

依赖原则

依赖就是为了解决工程模块之间jar包冲突的问题

路径最短者优先

验证路径同时时,先声明者优先

maven常用命令

 清理项目 mvn clean

 编译主程序 mvn cmplie

 编译测试程序 mvn test-comoplie

 执行测试 mvn test

 安装项目 mvn install

 部署项目 mvn depoy

 查看版本 mvn -v

 生产站点 mvn site

 依赖管理 mvn dependency:tree

maven 生命周期

清理 clean

编译 complie

测试 test

打包 package

安装 install

发布 deploy

执行时是由上到下顺序执行的

比如 执行 package 会依次执行 clean complie test package

maven自动执行构建过程的哥哥环节的原因

maven的插件机制完全依赖maven的生命周期

      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值