项目构建工具--Maven总结

请多多支持博主,点赞关注共同进步哦~

一、Maven

标准目录结构
在这里插入图片描述

1、Maven是什么?

Maven由Apache 软件基金会所提供,一个开源项目, 是基于项目对象模型(POM)进行软件项目管理及自动构建工具。

2、为什么要使用Maven?

2.1、因为方便。。

2.2、传统项目开发常见问题

  1. jar包过多,收集不易,容易出错
  2. 工程庞大难以管理
  3. 项目之间依赖困难
  4. 不同IDE项目结构不同,项目互导繁琐
  5. 项目编译、运行、打包、发布等流程繁琐

3、Maven的作用

  1. 管理项目的依赖关系(主要是jar包的管理)
  2. 提供统一模板,提供统一项目结构
  3. 一键命令构建项目,进行项目编译、运行、打包、发布、部署等

4、Maven与IDE的关系

  • IDE可以继承Maven
    • Eclipse、MyEclipse、IDEA
  • 两者的分工
    • IDE:主要提供代码的编写、修改、删除代码或代码对应的文件
    • Maven:从项目的构建,一直到发布、部署一系列的工作

5、Maven相关概念

  • Maven组件(构件)
    • 定义:项目编译或运行需要依赖的各种Maven组件
    • 类型:Jar包、描述文件、插件等
  • Maven仓库
    • 保存Maven构建的本地或者远程存储区域
    • 分类:本地仓库、远程仓库
  • Maven坐标
    • Maven构建的定位标识(GrouplD、ArtifactlD、Version)
    • 作用:用来定义和寻找要使用的Maven构建
      在这里插入图片描述

6、Maven项目的pom文件结构

在这里插入图片描述

7、Maven命令

#查看Maven版本信息 
mvn -v
#编译源代码
mvn compile
#编译、运行单元测试
mvn test
#打包
mvn package
#清空输出目录下所有文件
mvn clean
#安装至本地仓库
mvn install

8、使用IDEA创建一个Maven项目并测试mvn命令

在这里插入图片描述

9、原生CMD的mvn命令

在这里插入图片描述

9.1、创建Maven java项目

方式一:
在这里插入图片描述
在这里插入图片描述

方式二:
在这里插入图片描述
在这里插入图片描述

9.2、测试mvn的执行命令

compile:
在这里插入图片描述
在这里插入图片描述
clean:
在这里插入图片描述
install:
在这里插入图片描述

9.3、开发条件下

  • 只给一台空白机,要执行,可以直接安装一个JDK和maven,使用原生cmd方式,创建项目,编写代码,编译,运行,打包,发布等等,当然,会了更好,了解即可。
  • 开发中还是使用idea等IDE进行点击操作。

二、总结

1、maven是项目构建工具

  • 项目的开头:mvn archetype:generate-D…
  • 项目的结尾:mvn package,mvn install

2、扩充非操作的技术

2.1、什么是maven的构件?

  • 在Maven中,任何依赖(jar包,tomcat等)或项目(自己打包的jar,war等)输出都可成为构件。

2.2、构件的标识?(3元素)

每个构件都有自己的唯一标识(唯一坐标),由groupId,artifactId和version等信息构成

  • groupId:当前Maven构件组织名。(也就是项目包名)

  • artifactId:项目名

  • version:项目当前版本。

2.3、maven的生命周期

在这里插入图片描述

2.4、构件的作用范围

在这里插入图片描述
在这里插入图片描述

2.5、什么是maven的依赖排除

项目中依赖2个jar包
<dependecy>A--->c2.0
</dependecy>
<dependecy>B---->c1.0
<排除c1.0,因为2.0已经包含1.0的东西了>
</dependecy>

在这里插入图片描述

2.6、短路优先

  • 构件具有依赖传递。例如:当前项目依赖构件A,而构件A又依赖B,Maven会将A和B都视为当前项目的依赖。

  • 构件之间存在版本冲突时,Maven会依据 “短路优先” 原则加载构件。此外,我们也可以在pom.xml中,使用显式排除某个版本的依赖,以确保项目能够运行。

  • 项目依赖构件A和B,构件A → C → D(version:1.0.0),构件B → D(version:1.1.0),此时,Maven会优先解析加载D(version:1.1.0)。

  • 项目依赖构件A和B,构件A → D(version:1.0.0), 构件B → D(version:1.1.0),此时,Maven会优先解析加载D(version:1.0.0)。
    在这里插入图片描述

发布了108 篇原创文章 · 获赞 39 · 访问量 9328

猜你喜欢

转载自blog.csdn.net/qq_40246175/article/details/103961629