请多多支持博主,点赞关注共同进步哦~
文章目录
一、Maven
标准目录结构
1、Maven是什么?
Maven由Apache 软件基金会所提供,一个开源项目, 是基于项目对象模型(POM)进行软件项目管理及自动构建工具。
2、为什么要使用Maven?
2.1、因为方便。。
2.2、传统项目开发常见问题
- jar包过多,收集不易,容易出错
- 工程庞大难以管理
- 项目之间依赖困难
- 不同IDE项目结构不同,项目互导繁琐
- 项目编译、运行、打包、发布等流程繁琐
3、Maven的作用
- 管理项目的依赖关系(主要是jar包的管理)
- 提供统一模板,提供统一项目结构
- 一键命令构建项目,进行项目编译、运行、打包、发布、部署等
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)。