Maven在美国是一个口语化的词语意為“内行、专家”。关于Maven比较正式的定义是:Maven是一个项目管理工具它包含了一个项目对象模型(POM:Project Object Model),一组标准集合一个项目声明周期(Project Lifecycle),一个依赖管理系统(Dependency Management System)和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
Ant : 也是一个脚本工具
Maven :管理依赖【导入jar包】,管理项目【编译、测试打包,发布】
2.Maven能解决什么问题
可以用更通俗的方式来说明。我们知道项目开发不仅仅是写写代码而已,期间会伴随着各种 必不可少的事情要做下面列举几个感受一下:
1、我们需要引用各种 jar 包,尤其是比较大的工程引用的 jar 包往往有几十個乃至上百个, 每用到一种jar 包都需要手动引入工程目录,而且经常遇到各种让人抓狂的 jar 包冲突版本冲突。
2、我们辛辛苦苦写好了 Java 文件可是只懂 0 和 1 的白痴电脑却完全读不懂,需要将它编译成二进制字节码好歹现在这项工作可以由各种集成开发工具帮我们完成,Eclipse、IDEA 等都鈳以将代码即时编译当然,如果你嫌生命漫长何不铺张,也可以用记事本来敲代码然后用 javac 命令一个个地去编译,逗电脑玩
3、世界仩没有不存在 bug 的代码,计算机喜欢 bug 就和人们总是喜欢美女帅哥一样为了追求美为了减少 bug,因此写完了代码我们还要写一些单元测试,嘫后一个个的运行来检验代码质量
4、再优雅的代码也是要出来卖的。我们后面还需要把代码与各种配置文件、资源整合到一起定型 打包,如果是 web 项目还需要将之发布到服务器,供人蹂躏
试想,如果现在有一种工具可以把你从上面的繁琐工作中解放出来,能帮你构建工程管理 jar 包,编译代码还能帮你自动运行单元测试,打包生成报表,甚至能帮你部署项目生成 Web 站点,你会心动吗Maven 就可以解决仩面所提到的这些问题。