大家好,我是IT修真院上海分院第5期学员,一枚正直善良的JAVA程序员。
今天给大家分享一下,修真院官网JAVA任务1中,maven是什么,它和ant有什么区别?
一、背景介绍
软件开发其实是一件很复杂的事情,是一个从0到1的过程,原始的软件开发工作需要耗费大量的时间,同时极其的耗费脑力、精力。在这中情况下各种各样的构建和框架就被程序员前仆后继的开发出来,以减轻开发人员的工作量,提高开发效率。ant和maven就是这样逐步出现的。下面是我从apache官网中将关于ant和maven的简介的第一句话,复制下来,从这两段话,就可以对ant和maven的区别有一个大概的了解。当然我个人认为,如果是要成为这方面的大牛,这两款软件还是有很多很深的知识需要了解,但如果只是平常工作的话,其实选择maven是很好的选择。
关于Maven--->Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM,项目对象模型), Maven can manage a project's build, reporting and documentation from a central piece of information.
关于Ant--->Apache Ant is a Java library and command-line tool whose mission is to drive processes described inbuild filesas targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications. Ant supplies a number of built-in tasks allowing to compile, assemble, test and run Java applications.
二.知识剖析
1.maven&ant同属apach是流行的构建工具。
都是为了简化软件开发而存在的。但是maven因为自身管理一个项目对象模型(project object model),这个模型其实就是抽象了一个项目的开发流程,它包含了一个项目的生命周期的各个阶段,并将这个周期固定下来,这也就是约定大于配置。约定大于配置的意思就是,我maven将项目开发的各个阶段固定起来了,每个文件的存放位置,每个阶段要生成什么文件、保存为什么格式并且要把它放在什么位置,我都固定好了。我知道一个软件是怎么开发出来,如果一个项目要使用maven,可以,但你要遵循我的规则,文件目录不要乱建乱放,只有这样maven才会将源码用起来。这就是约定大于配置,因为maven已经将流程固定下来了,只要遵守约定,就不需要自己手动去配置了,这将大大地提高开发效率。
就像是开车一样,只要知道点火、油门、方向、刹车,就可以将车子开东起来(当然出于安全和法律考虑,还是要考驾照的。),关于车子内部的传动原理,电气原理,工程原理,普通人并不需要了解多少,日常够用就好了。这也是约定大于配置的一个例子。配置就是自己造一辆车去开,有必要,有能力,有时间吗?
2.maven的中央仓库和pom.xml文件。中央仓库统一存放了开发用到的各种jar包,要用时只需要添加依赖到pom文件中,maven就会自动下载,当然为了方便一般会在本地建一个仓库,减少下载时间。pom文件是maven的配置文件,maven就是通过管理pom文件和一些核心插件来管理项目。当然我前面将maven拟人化了,其实maven是没有智力的,一切都是封装好的流程,只是maven将很多操作隐藏起来了。
3.ant的build.xml文件。build文件是ant的配置文件,ant依靠它来执行操作,与maven不同的是ant没有固定一条程序链。你想要执行什么操作以及操作之间的顺序和依赖关系,都需要手动添加到build文件中,一点一滴都要写清楚,否则ant就不会执行。
4.maven和ant区别
Maven 拥有约定,只要遵守约定,它就知道你的源代码在哪里。Maven 是声明式的。你需要做的只是创建一个 pom.xml 文件然后将源代码放到默认的目录。Maven 会帮你处理其它的事情。Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。缺点是运行许多默认目标。
而ant没有约定,项目生命周期,它是命令式的。所有操作都要手动去创建、布置。甚至连build.xml文件都需要手动创建。
三.常见问题
1.maven和ant哪个更好?
四.解决方案
1.maven要方便许多,虽然日常工作各有不同,但其实都在maven的项目生命周期范围内。就像虽然人类有很多人种,但是我们都一样。
五。编码实战
七、参考文献
http://maven.apache.org/
http://ant.apache.org/
maven 中文指南
八.更多讨论
1.什么时候用ant比较好?
答:我现在是用不到,婴儿级java选手,想那么远干嘛,可以肯定的是很多牛X的人都在用maven。
2.maven需要深入学习吗?
答:这个看情况,入门选手只需要能用maven的常用命令来做项目就好了,随着水平的提高,对于maven肯定会用更高的要求和掌握。
3.我可以使用ant来构建项目吗?
答:可以啊,如果你想自己体验一个项目从零到一的过程的话,ant会帮你了解它。你不经需要编写程序,还有编写程序式的命令到build文件,告诉ant需要怎么一步一步做。不过不推荐,毕竟,工作不是一个人做的,而且日常工作也很少用到需要自己去构建项目。
详见视频
感谢大家观看
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
技能树.IT修真院
“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。
这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~