项目构建工具--Maven总结

Maven是一款由Apache基金会提供的项目管理和自动化构建工具,通过POM(项目对象模型)简化jar包管理,解决传统开发中的依赖难题。它提供统一的项目结构,支持一键构建、编译、打包、发布等操作。Maven与IDE如Eclipse、IDEA等整合,使得代码编写和项目管理更加便捷。Maven构件包括Jar包、描述文件等,其唯一标识由groupId、artifactId和version组成。Maven生命周期和依赖管理遵循短路优先原则,有效处理版本冲突。
摘要由CSDN通过智能技术生成

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

一、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)。
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值