您的位置:首页 > 其它

一文带你彻底搞懂 Maven

2019-08-30 15:15 543 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/hi_onebro/article/details/100159563

在刚学maven时,我就把maven当作一个引入jar包的工具而已,以前是自己下载jar包,现在是只用在pom文件中填写相应的坐标就可以了。除此之外当我们需要使用的jar包依赖于另一个jar包时,maven会自动帮我们引入适用的版本。这就避免了我们自己下jar包,然后版本不匹配的问题。除此之外,我还模糊的知道一些maven的聚合和继承,之后在接手项目的时候还是吃了的大亏。于是打算重新学习一下maven。
maven是什么
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information
Maven 的定位
多数博客或者视频都将maven定义为自动化构建工具。那什么是304不锈钢水箱自动化构建工具呢?我们首先来解释构建:
一个BS项目最终运行的并不是动态web工程本身,而是这个动态web工程“编译的结果”
将java源文件变成字节码,交给JVM去执行
编译
部署

构建各个过程的步骤:
清理: 将以前编译得到的旧字节码删除掉
编译: 将java源代码变成字节码
测试: 执行test文件夹中的测试程序
报告: 显示测试程序执行的结果
打包: 动态Web工程打成war包,Java工程打成jar包
安装: Maven的特定概念—将打包得到的文件复制到"仓库"中指定的位置
部署: 将动态Web工程生成的war包复制到Servlet容器中指定的目录下,使其可以运行
自动化构建,其实上述步骤,在 elipse 和 IDEA 中也可以完成,只不过没那么标准。既然 IDE 已经可以完成这些工作了,那么还要 maven 干什么呢?

日常开发中,以下几个步骤是我们经常走的:
编译
打包
部署
测试

这几个步骤是程式化的,没有太大的变数或者说根本就没有变数。程序员们很希望从这些重复的工作中脱身出来,将这些重复的工作交给工具去做。此时Maven的意义就体现出来了,它可以自动的从构建过程中的起点一直执行到终点。
maven 的核心概念
POM
POM: a project object model. 项目对象模型。对这个概念老实说,我并没有很深的理解,或者说我并不理解项目对象模型的意思。
有资料说项目对象模型就是将 Java 工程的相关信息封装为对象便于操作和管理的模型。
这个解释的稍微让人那么容易那么一点。学习 Maven 就是学习 pom.xml 文件中的配置。
坐标
坐标这个概念我觉得和依赖结合起来解释会更好,在没有Maven之前,我们引入jar包的方式就是先下载,
然后在复制在类文件路径下,你的项目需要的jar包,在Maven看来就是你的项目依赖于某些jar包,pom.xml文件中填写对应jar包的位置,
就可以引入对应的 jar 包。使用如下三个向量在 Maven 的仓库中唯一的确定一个 Maven 工程

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: