美文网首页IT修真院_JAVA
maven是什么?maven与ant有什么区别?

maven是什么?maven与ant有什么区别?

作者: 魏杨 | 来源:发表于2017-05-29 18:41 被阅读0次

    PPT连接:https://github.com/ptteng/PPT/blob/master/PPT/java_task1_1.html

    视频地址:https://v.qq.com/x/page/e05086ms27s.html

    Maven是一个强大的Java项目构建工具。

    构建工具是将软件项目构建相关的过程自动化的工具。

    Maven主要做了两件事:

    统一开发规范与工具

    统一管理jar包

    构建一个软件项目通常包含以下一个或多个过程:

    生成源码(如果项目使用自动生成源码);

    从源码生成项目文档;

    编译源码;

    将编译后的代码打包成JAR文件或者ZIP文件;

    将打包好的代码安装到服务器、仓库或者其它的地方;

    Maven的定位是软件项目管理和理解工具。Maven除了具备Ant的功能外,还增加了以下主要的功能:

    1)使用Project Object Model来对软件项目管理;

    2)内置了更多的隐式规则,使得构建文件更加简单;

    3)内置依赖管理和Repository来实现依赖的管理和统一存储;

    4)内置了软件构建的生命周期;

    •Maven 拥有约定,因为你遵循了约定,它已经知道你的源代码在哪里。

    •Maven 是声明式的。你需要做的只是创建一个 pom.xml 文件然后将源代码放到默认的目录。Maven 会帮你处理其它的事情。

    •Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。

    Ant是Apache另一个流行的构建工具。

    Ant使用命令式的方式,即你需要在Ant构建文件里指定Ant应该执行的操作。你可以指定低级别的操作,如复制文件、编译代码等。你指定操作,还需要执行这些操作执行的顺序。Ant没有默认的目录结构。

    Ant 没有正式的约定如一个一般项目的目录结构,你必须明确的告诉 Ant 哪里去找源代码,哪里放置输出。

    Ant 是程序化的,你必须明确的告诉 Ant 做什么,什么时候做。你必须告诉它去编译,然后复制,然后压缩。

    •Ant 没有生命周期,你必须定义目标和目标之间的依赖。你必须手工为每个目标附上一个任务序列

    总结

    maven和ant虽然都是构建工具,但是两种的思维方式是不一样的,ant更像一种编程语言,自己去写代码让项目做你想要让它做的事情,删除,复制,编译,测试,打包等,而maven则是自己有生命周期去完成你想要的编译测试等工作,只要你懂它的约定,当然你得懂他的各种约定包括配置文件的各种配置。maven在于配置。

    参考文献

    http://www.cnblogs.com/itech/archive/2011/11/01/2231837.html

    http://blog.csdn.net/b11040805/article/details/20724943

    http://blog.csdn.net/zhousenshan/article/details/48291903

    http://www.cnblogs.com/jeffen/p/6124830.html

    http://miaowugui.iteye.com/blog/2207024

    -----------------------------------------------------------------------------------------------------------------------

    技能树.IT修真院

    “我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

    这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧 !IT修真院:http://www.jnshu.com/login/1/10031132

    相关文章

      网友评论

        本文标题:maven是什么?maven与ant有什么区别?

        本文链接:https://www.haomeiwen.com/subject/whtlfxtx.html