Maven速成
Maven简介
简介
主要服务于基于java平台的项目构建,依赖管理和项目信息管理
仓库
坐标
项目构建
编译,运行单元测试,生成文档,打包和部署等就是构建
通过软件可以让这一系列工作完全自动化,使得软件的构建可以像全自动流水线一样,只需要一条简单的命令,所有的繁琐步骤都能够自动完成,很快得到最终
项目构建工具
Ant构建
最早的构建工具,基于IDE,2000年最流行的java构建工具,不过它的XML脚本编写格式让XML文件特比大。对工程构建过程中的过程控制特别好
Maven【Java】
项目对象模型,通过其描述信息来管理项目的构建,报告和文档的软件项目管理工具。填补了Ant缺点,Maven第一次支持了从网络上下载的功能,仍然采用xml走位配置文件格式。Maven专注的是依赖管理,使用Java编写。
Gradle
结合以上两个的优点,继承了Ant的灵活和Maven的生命周期管理,最后被google作为了Andriod的御用管理工具。最大的区别是不用XML作为配置文件格式,采用了DSL格式,使得脚本更加简洁。
Maven的四大特性
依赖管理系统
Maven为java世界引入了一个新的依赖管理系统 jar包管理
jar升级时修改配置文件即可。在java世界中,可以使用groupId、artifactId、version组成的Coordination(坐标)唯一标识一个依赖。
任何基于Maven构建的项目自身也必须定义这三项属性,生成的包可以是Jar包,也可以是war包或者jar包。
一个典型的依赖引用范例:
< dependency >
< groupId >javax.servlet< /groupId > com.biadu
< artifacetId >javax.servlet-api< /artifactId > ueditor echarts
< version >1.0< /version >
< /dependency >
坐标属性的理解
Maven坐标为各种组件引入了秩序,任何一个组件都必须明确定义自己的坐标
groupId
定义当前Maven项目隶属的实际项目-公司名称。(jar包所在仓库路径)由于Maven中模块的概念,因此一个实际项目往往会被划分为很多模块。比如spring是一个实际项目,其对应的Maven模块hi有很多,如spring-core,spring-webmvc等。
artifactId
该元素定义实际项目中的一个Maven模块-项目名,推荐的做法是使用实际项目名作为artifactId的前缀。比如:spring-bean,spring-webmvc
version
该元素定义Maven项目当前所处的版本
- 依赖传递
简单来说,类似套娃
- 可选依赖:控制资源不被看到
- 排除依赖:是主动的断开间接的依赖
- 依赖范围
先横后
生命周期和插件
- 项目构建生命周期