1.maven是什么,和Ant有什么区别?

java小课堂

分享人:陈鑫

1.背景介绍

2.知识剖析

3.常见问题

4.解决方案

5.编码实战

6.扩展思考

7.参考文献

8.更多讨论

1.背景介绍

1.背景介绍

maven&ant同属apach是流行的构建工具。

关于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 in build files as 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.

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

编写源码;

从源码生成项目文档;

编译源码;

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

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

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

Maven主要做了两件事:

约定优于配置:统一开发规范与工具

远程仓库:统一管理jar包

Ant使用命令式的方式,即你需要在Ant构建(默认是build.xml,也可以改名)文件里指定Ant应该执行的操作,并定义执行这些操作执行的顺序。Ant没有默认的目录结构。

2.知识剖析

maven和ant的区别

Maven的定位是软件项目管理和理解工具。制定标准。

1)提供项目对象模型来对软件项目管理;

2)目录布局,使得构建文件位置固定起来;

3)标准仓库,实现依赖jar包的管理和存储;

4)生命周期,规定了软件开发的全部阶段(有目标组成);

5)插件定制,声明依赖;

6)接口,定义了构建软件的接口。

maven和ant的区别

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

Ant 程序化,你必须明确的告诉 Ant 做什么,什么时候做,用那些去做。所有步骤都要列出来。

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

maven和ant的区别

Maven 拥有约定,丁是丁,卯是卯,它已经知道你的源代码在哪里。

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

Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。缺点是运行许多默认目标。

3.常见问题

maven和ant哪个更好用?

4.解决方案

最后总结

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

5.编码实战

6.扩展思考

7.参考文献

http://maven.apache.org/

http://ant.apache.org/

maven 中文指南

8.更多讨论

鸣谢

感谢观看,如有出错,恳请指正

BY : 陈鑫