设为首页 - 加入收藏 焦点技术网
热搜:java
当前位置:首页 >

Maven介绍

2014-11-12 11:58:00.0 maven maven 版本控制系统 jar 管理  
导读:maven是什么maven是apache的一个开源项目,主要服务于基于java平台的项目构建、依赖管理、项目信息管理。maven是跨平台的,无论在windows上,还是在linux或者mac上,都可以使用同样的命令对java项目进行管理。什么是项目构建我们每天有相当一部分时间花在编译、运行单元测试、生成文档、打包和部署等繁琐且不起眼的工作上,这就是构建。maven能让软件的构建像全自动流水线一样,...。。。

maven是什么


maven是apache的一个开源项目,主要服务于基于java平台的项目构建、依赖管理、项目信息管理。maven是跨平台的,无论在windows上,还是在linux或者mac上,都可以使用同样的命令对java项目进行管理。

什么是项目构建

我们每天有相当一部分时间花在编译、运行单元测试、生成文档、打包和部署等繁琐且不起眼的工作上,这就是构建。maven能让软件的构建像全自动流水线一样,只要一条简单的命令,所以繁琐的步骤都能够自动完成,很快就能得到最终的结果。

什么是依赖

几乎任何java应用都会用到第三方的开源类库(jar包等),这些类库都可以通过依赖的方式引入到项目来。依赖的管理也可以通俗的理解成jar包,依赖包的管理。它通过一个坐标系统准确的定位每一个构件 artifact,也就是用过一组坐标maven能够找到任何一个java类库(如jar包)


项目信息包括哪些

项目信息包括项目描述、开发者列表、版本控制系统地址、许可证、缺陷管理系统等。通过maven我们能够轻松获得项目文档、测试报告、静态分析报告、源码版本日志报告等有价值的信息。


maven的中央仓库

maven还为全世界的java开发者提供了一个免费的中央仓库,在其中几乎可以找到任何流行的开源的类库(jar包)。也就是说 我们只要配置好坐标,maven就会自动给我们下载相关的包,我们就不需要每次都自己手动去找包添加依赖了


maven能做什么

通过上述的maven的描述,我们知道maven主要能为我们提供以下几个服务:

1.自动编译

2.自动下载管理依赖jar包

3.获取项目信息



maven与其它构建方式的对比


IDE

当前主流的IDE如Eclipse和Net-Beans等都提供了强大的文本编辑、调试甚至重构功能。

但IDE有如下缺陷:

1.依赖大量的手工操作。编译、测试、代码生成等工作都是相互独立的,很难一键完成所有工作。手动劳动往往意味着低效,意味着容易出错。

2.很难在项目中统一所有的IDE配置,每个人都有自己的喜好,有些人用eclipse,有些人用myeclipse,也正是由于这个原因,一个在机器A上可以成功运行的任务,到了机器B的IDE中可能就会失败


所以我们应该合理利用IDE,可以使用其来进行编码,对于构建,在IDE中需要一次次的点击鼠标。我们可以使用maven来进行构建,而且主流IDE都集成了Maven,我们可以在IDE中方便地运行Maven执行构建。


Make

Make也许是最早的构建工具,由Makefile的脚本文件驱动,该文件使用Make自己定义的语法格式。其基本组成部分为一系列的构造规则(Rules),每一条规则又包括目标(Target)、依赖(Prerequisite)和命令(Command).

Make存在的问题:

1.和操作系统绑定在一起,不跨平台

2.Makefile的语法兼容性不强,构建失败的原因往往是一个难以发现的空格或者Tab使用错误。


Ant

Another Neat Tool,另一个整洁的工具,最早用来构建Tomcat,它是一个java版本的Make,Ant是跨平台的,使用XML定义构建脚本。Ant有一个构建脚本build.xml,它的基本结构也是目标(target)、依赖(depends),以及实现目标的任务。Ant的缺点在于 没有管理依赖,也就是说必须手动依赖包。而且需要重复手工创建脚本。而maven的脚本有一定的规范,可以复用。




















(编辑: q383965374)

网友评论