Maven基础教程

举报
扎哇太枣糕 发表于 2022/05/17 08:28:44 2022/05/17
【摘要】 ​ 1 Maven简介2 Maven基础概念2.1 仓库2.2 坐标3 依赖的相关知识点4 生命周期与插件5 使用Inteli idea完成第一个Maven项目1 Maven简介        Maven的本质就是一个项目管理工具,用于将项目开发和管理过程抽象成一个项目对象模型(project object model POM)Maven的作用:项目构建:提供标准的、跨平台的自动化项目构建方...

 1 Maven简介

2 Maven基础概念

2.1 仓库

2.2 坐标

3 依赖的相关知识点

4 生命周期与插件

5 使用Inteli idea完成第一个Maven项目


1 Maven简介

        Maven的本质就是一个项目管理工具,用于将项目开发和管理过程抽象成一个项目对象模型(project object model POM)

Maven的作用:

  • 项目构建:提供标准的、跨平台的自动化项目构建方式
  • 依赖管理:方便便捷的管理项目以来的资源(jar包),避免资源之间的版本冲突问题
  • 统一开发结构:提供了标准统一的项目结构,如下图:

编辑

Maven的下载安装与配置:只需五步学会Maven的下载安装【图文详解】_扎哇太枣糕的博客-CSDN博客

编辑

2 Maven基础概念

2.1 仓库

        仓库用于存储资源,主要是各种jar包

编辑 从上图可知,仓库可被分为两种:本地仓库和远程仓库

  • 本地仓库:自己电脑上用于存储资源的仓库,可连接远程仓库来获取资源
  • 远程仓库:非本机上的仓库,为本地仓库提供资源
    • 私服:一定范围内存储资源的仓库,既可以从中央仓库中获取资源,也可以将各种途径获取到的不开源jar包存储在私服里
    • 中央仓库:由Maven的官方团队来维护,存储所有的资源,且里面的资源都是开源的

2.2 坐标

坐标就是Maven中用于描述仓库中资源的位置

Maven坐标的主要组成

  • groupId:当前Maven项目隶属组织的名称,通常是域名的反写(如org.mybatis)
  • artifactId:当前maven项目名称,通常是模块名(如hadoop-client)
  • version:项目版本号
  • packing:定义项目的打包方式(jar或者war等)

如何使用坐标导入依赖:​​​​​​从Maven中央仓库网站下载jar包的两种方式,将会伴随java后端开发者的整个职业生涯_扎哇太枣糕的博客-CSDN博客

编辑

3 依赖的相关知识点

依赖的配置:

依赖配置就是在pom.xml文件中导入相关依赖,借以定位到具体的jar包。所有的依赖全都在pom.xml文件下面的<dependencies>标签进行管理,使用<dependency>对每个jar包进行定位, 一个项目可以设置多个依赖,使用多个<dependency>标签进行定位。

编辑

依赖的传递:

依赖传递就是两个模块之间进行调用,被调用模块的依赖会被传递给调用模块,调用模块的pom.xml文件里需把被调用模块当成是一个依赖进行导入

编辑

依赖传递时的冲突问题:

当调用模块的依赖版本与被调用模块的版本发生冲突时,遵循以下原则:

  • 路径优先:不同模块的不同层级,层级浅的依赖覆盖层级深的编辑
  • 声明优先:不同模块的相同层级冲突,先配置的覆盖后配置编辑
  • 后覆盖前:同一个模块内,后配置的覆盖前面的编辑

依赖传递时标签里的设置:

隐藏依赖(被调用模块的行为)

<optional>true</optional>

设置之后,调用模块就看不见被调用模块里面使用过这个依赖了 

编辑

排除依赖( 调用模块的行为)

<exclusions>
    <exclusion>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
    </exclusion>
</exclusions>

 设置之后,调用模块里将不再使用被调用模块的这个依赖

编辑编辑

4 生命周期与插件

生命周期就是一个完整的Maven项目需要经历所有的阶段,就像是生命一样无法跳过一个阶段去执行下一个阶段,主要有以下三套生命周期:

  • 编辑
  • 编辑
  • 编辑

 插件就是要与生命周期的某个阶段相绑定,在执行到相应生命周期时会去实行相绑定的插件的功能。

 Maven官网中给出的所有插件:https://maven.apache.org/plugins/index.html

插件目录结构(以打jar包插件为例)

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.2.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                    <phase>generate-test-resources</phase>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

编辑编辑

5 使用Inteli idea完成第一个Maven项目

参考博客:2021 使用IDEA创建并编写你的第一个Maven项目【图文详解】_扎哇太枣糕的博客-CSDN博客

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。