浅谈Maven

一、Maven的哲学

构建工具,与Ant类似。但是在maven的哲学里,maven是通过采用各种模式来创建的一个具有可视性、复用性、可维护性和完整性等特征的基础设施。
接地气:他希望把软件开发中的一些最佳实践和模式都整合和固化下来

  最初的诞生就是希望Apache的一些项目能够以相同的方式来开发和构建,这样一个开发者从一个项目转到另外一个项目工作的时候能够更加轻松的切换。

  因为项目的开发、测试、文档生成、报表和部署,都具有一些共同的特征,这些特征就可以认为是软件开发过程中的一些最佳实践,当这些最佳实践成为共识,开发的协作必然会更加高效。
那么Maven要做的就是把这些最佳实践固化成一个通用的项目管理方法。

  至于模式,学术上一般简单定义为针对一种类型的特性问题的解决方案。小到一个项目的目录模式(比如:代码放到哪?测试代码放到哪?资源放到哪?),再大粒度一些比如项目的依赖如何管理,再大到整个项目构建的生命周期模式(比如:通用的构建过程包含哪些阶段?),都是Maven这个基础设施要提供给大家的,是Maven强制大家形成共同的认知。

二、功能

A. 项目构建(软件生产的整个过程):代码生成+编译+单元测试+文档生成+测试打包+分发部署

maven功能:构建中的过程都能够进行良好的定义(模式、固化、共识),换句话说就是消除了构建的重复,抽象了构建生命周期。他还能够帮我们串起来形成一个自动构建过程(清理、编译、测试到生成报告,再到打包部署),帮助我们标准化构建过程

B. 依赖管理工具和项目信息管理工具
java优势:无数的框架和API——jar包,相信很多人都经历过JAR Hell的问题吧,事实上让一个项目所依赖的依赖的外部jar包保持正确的版本和最新的状态,是意见非常苦逼的事情。

maven:可以帮助我们做依赖管理,我们需要做的就是在pom文件里制定jar包的名称、版本号,maven会自动下载,并且递归下载依赖的包。(坐标系统)

Maven提供一个非常方便的功能:快照依赖。快照依赖指的是那些还在开发中的内部依赖包。与其经常地更新版本号来获取最新版本,不如你直接依赖项目的快照版本。快照版本的每一个build版本都会被下载到本地仓库,即使该快照版本已经在本地仓库了。总是下载快照依赖可以确保本地仓库中的每一个build版本都是最新的。这对我们快速迭代开发是一个非常酷的特性。

Maven能帮助我们管理原本分散在项目中各个角落的项目信息,包括项目描述、开发者列表、版本控制系统地址、许可证、缺陷管理系统地址等。

三、干什么

项目构建、项目依赖管理、软件项目持续集成、版本管理、项目的站点描述信息管理、下载source并关联source:项目&管理

Maven提供了一种思想让团队更科学的管理、构建项目。用配置文件的方式对项目的描述、名称、版本号、项目依赖等等信息进行描述。

在项目构建时,利用Maven的“约定大于配置”的思想,可以比Ant脚本构建项目省去不少配置文件的内容。而且一个项目可能依赖于其他的项目和第三方的组件才能顺利完成,Maven提供了仓库的概念,让这些依赖项放进仓库中,项目想要从仓库中去取,其他项目组也需要,OK,从仓库中去取,不必每个人去开源项目的站点去苦苦搜寻了。

四、为什么要用?和ANT比较

IDE依赖大量的手工操作。编译、测试、代码生成等工作都是相互独立的,很难一键完成所有工作,很难在项目中统一所有的IDE配置,每个人都有自己的喜好。

Ant(another neat tool),最早是用来构建Tomcat,make和ant都是过程式的,开发者显示制定每一个目标,以及完成该目标所需要执行的任务。针对每一个项目,都需要重新编写这一过程,隐含大量重复。

maven是声明式的,构建过程和过程各阶段所需的工作都是由插件实现,只需要声明项目的基本元素,maven就执行内置的、完整的构建过程,消除了充足。

而且ant没有依赖管理

总结

  其实maven就是一个帮助程序员做项目管理和项目构建的工具,他可以代替程序员去做在开发过程中的一系列重复的工作,比如编译、测试、代码生成、打包、部署,一个deploy的命令,所以的任务都由maven替你完成,而且开发JAVA项目的时候我们要引入许许多多的JAR包,maven可以替你做依赖管理,只要你将你需要的jar包写入maven的配置文件中,点击保存,她就会自动帮你下载,好处多多,用就行啦,这一篇主要是理论,查了很多资料,其实不看上边的就看我总结中写的,也能了解各大概了,下一篇介绍安装和Nexus私服的搭建过程

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值