Maven(一):为啥要学习Maven
1、Maven是个啥?
Maven是个跨平台的项目管理工具,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理。
2、Maven能给我带来什么好处?
2.1、省掉我们每天的清理、编译、运行单元测试、生成文档、打包和部署等繁琐的构建操作所花费的时间,maven只需一条命令mvn clean install会自动帮我们完成。
2.2、跨平台性,无论在windows还是linux还是mac上都可以使用同样的操作命令
2.3、消除了构建的重复
3、类似于他的工具还有哪些,maven哪些方面要强一点?(为什么选择maven)
其他的构建解决方案还有IDE、Make以及Ant等。
IDE能够大大的提高我们的开发效率,当前主流的Eclipse和NetBeans等都提供了强大的文本编辑、调试甚至是重构功能,但是IDE存在其天生的缺陷,它需要依赖大量的手工操作,编译、测试、代码生成等,很难做到一键完成绝大多数工作,还有一个问题是一个在机器A上可以成功运行的代码移植到B的IDE中就可能会失败,我们应该合理的使用IDE,使用他的优点摒弃它的不足,当前主流IDE都已经集成了Maven
Make也许是最早的构建工具,具体不详,没用过,可以不了解.Make的强大之处在于它可以利用所有系统的本地命令,尤其是UNIX/Linux系统,丰富的功能、强大的命令能够帮助Make快速高效地完成任务。但是,Make将自己和操作系统绑定在一起了。也就是说,使用Make,就不能实现(至少很难)跨平台的构建,这对于Java来说是非常不友好的。此外,Makefile的语法也成问题,很多人抱怨Make构建失败的原因往往是一个难以发现的空格或Tab使用错误。
Ant基于java的跨平台的。 和Make一样,Ant也都是过程式的,开发者显式地指定每一个目标,以及完成该目标所需要执行的任务。针对每一个项目,开发者都需要重新编写这一过程,这里其实隐含着很大的重复。Maven是声明式的,项目构建过程和过程各个阶段所需的工作都由插件实现,并且大部分插件都是现成的,开发者只需要声明项目的基本元素,Maven就执行内置的、完整的构建过程。这在很大程度上消除了重复。Ant是没有依赖管理的,所以很长一段时间Ant用户都不得不手工管理依赖,这是一个令人头疼的问题。幸运的是,Ant用户现在可以借助Ivy管理依赖。而对于Maven用户来说,依赖管理是理所当然的,Maven不仅内置了依赖管理,更有一个可能拥有全世界最多Java开源软件包的中央仓库,Maven用户无须进行任何配置就可以直接享用。
4、maven有哪些不足?
4.1、对于IDE的支持较差,bug比较多,不是很稳定(maven还比较年轻,这个是必经的一个过程)
4.2、Maven过于复杂,它就是构建系统的EJB2.(maven是用来管理项目的,从清理、编译、测试、打包、发布以及一些自定义的过程本身就是一件复杂的事情,Java社区目前还没有比maven更强大更简单的工具,因此我们应该尝试去帮助maven让它变简单而不是抛弃它)
4.3、文档资料比较少(俺还很年轻,需要大家的帮忙)