自学内容网 自学内容网

Maven概述

一、Maven的简介

1. 简介

Maven【[ˈmevən]】这个词可以翻译为"专家","内⾏"。 作为Apache组织中的⼀个颇为成功的开源项 ⽬,Maven主要服务于基于java平台的项⽬构建,依赖管理和项⽬信息管理。 ⽆论是⼩型的开源类库项⽬,还是⼤型的企业级应⽤; ⽆论是传统的瀑布式开发,还是流⾏的敏捷开发, Maven都能⼤显身⼿。

2. 项⽬构建

不管你是否意识到,构建(build)是每⼀位程序员每天都在做的⼯作。早上来到公司,我们做的第⼀ 件事就是从源码库签出最新的代码,然后进⾏单元测试,如果测试失败,会找相关的同事⼀起调试,修 复错误代码。 接着回到⾃⼰的⼯作上来,编写⾃⼰的单元测试及产品代码。

仔细总结⼀下,我们会发现,除了编写源代码,我们每天有相当⼀部分时间花在了编译,运⾏单元测 试,⽣成⽂档,打包和部署等繁琐且不起眼的⼯作上,这就是构建。 如果我们现在还⼿⼯这样做,那成本 也太⾼了,于是有⼈⽤软件的⽅法让这⼀系列⼯作完全⾃动化,使得软件的构建可以像全⾃动流⽔线 ⼀样,只需要⼀条简单的命令,所有繁琐的步骤都能够⾃动完成,很快就能得到最终结果

3. 项⽬构建⼯具

Ant构建

最早的构建⼯具,基于IDE, ⼤概是2000年有的,当时是最流⾏java构建⼯具,不过它的XML脚本编写 格式让XML⽂件特别⼤。对⼯程构建过程中的过程控制特别好

Maven【JAVA】

项⽬对象模型,通过其描述信息来管理项⽬的构建,报告和⽂档的软件项⽬管理⼯具。它填补了Ant 缺点,Maven第⼀次⽀持了从⽹络上下载的功能,仍然采⽤xml作为配置⽂件格式。Maven专注的是依 赖管理,使⽤Java编写。

Gradle

属于结合以上两个的优点,它继承了Ant的灵活和Maven的⽣命周期管理,它最后被google作为了 Android御⽤管理⼯具。它最⼤的区别是不⽤XML作为配置⽂件格式,采⽤了DSL格式,使得脚本更加 简洁。

⽬前市⾯上Ant⽐较⽼, 所以⼀般是⼀些⽐较传统的软件企业公司使⽤, Maven使⽤Java编写, 是当下⼤ 多数互联⽹公司会使⽤的⼀个构建⼯具, 中⽂⽂档也⽐较⻬全, gradle是⽤groovy编写, ⽬前⽐较新型的 构建⼯具⼀些初创互联⽹公司会使⽤, 以后会有很⼤的使⽤空间.

4. Maven的四⼤特性

1. 依赖管理系统

Maven为Java世界引⼊了⼀个新的依赖管理系统jar包管理 jar 升级时修改配置⽂件即可。在Java世界 中,可以⽤groupId、artifactId、version组成的Coordination(坐标)唯⼀标识⼀个依赖

任何基于Maven构建的项⽬⾃身也必须定义这三项属性,⽣成的包可以是Jar包,也可以是war包或者 jar包。⼀个典型的依赖引⽤如下所示:

坐标属性的理解

Maven坐标为各种组件引⼊了秩序,任何⼀个组件都必须明确定义⾃⼰的坐标。

groupId

定义当前Maven项⽬⾪属的实际项⽬-公司名称。(jar包所在仓库路径) 由于Maven中模块的概念, 因此⼀个实际项⽬往往会被划分为很多模块。 ⽐如spring是⼀个实际项⽬,其对应的Maven模块会有很多, 如spring-core,spring-webmvc等

artifactId

该元素定义实际项⽬中的⼀个Maven模块-项⽬名, 推荐的做法是使⽤实际项⽬名称作为artifactId的 前缀。

version

该元素定义Maven项⽬当前所处的版本

.2. 多模块构建

        项⽬复查时 dao service controller 层分离将⼀个项⽬分解为多个模块已经是很通⽤的⼀种⽅式。 在Maven中需要定义⼀个parentPOM作为⼀组module的聚合POM。在该POM中可以使⽤ 标签来 定义⼀组⼦模块。parent POM不会有什么实际构建产出。⽽parent POM中的build配置以及依赖配置 都会⾃动继承给⼦module

3. ⼀致的项⽬结构

         Ant时代⼤家创建Java项⽬⽬录时⽐较随意,然后通过Ant配置指定哪些属于source,那些属于 testSource等。⽽Maven在设计之初的理念就是Conversion over configuration(约定⼤于配置)。其 制定了⼀套项⽬⽬录结构作为标准的Java项⽬结构,解决不同ide 带来的⽂件⽬录不⼀致问题

4. ⼀致的构建模型和插件机制


原文地址:https://blog.csdn.net/2301_80114420/article/details/143001882

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!