1.什么是Ant?

Ant起源是为了取代构建工具Make。它可以跨系统,建立在Java和XML的基础上,而且非常程式化。

Ant更像一个脚本工具,我们必须在Ant内显示地声明做任何事情。在<target>内声明,而且没有统一的标准,一个application可能会包含庞大的repository。

2. Maven

Maven不仅仅是一个脚本工具,它更是一个成熟的构建工具。它有很多隐式的功能,譬如一致性,继承,transitive dependencies,版本管理。

3.优点和缺点<待完善>

Maven:

Maven can be a black box.

steeper learning curve

convertion over configuration

Better IDE integration

Less overheard through use of repos

different mindset, steepest learning curve is not making maven act like Ant

Ant:

we can trace Ant files fairly easily

quicker to learn, but very copy-paste intensive

larger project size in SCM, artifacts stored with project

e.g. Ant build.xml

<project>

  <target name="clean">

    <delete dir="build"/>

  </target>

  <target name="compile">

    <mkdir dir="build/classes"/>

    <javac srcdir="src" destdir="build/classes"/>

  </target>

  <target name="jar">

    <mkdir dir="build/jar"/>

    <jar destfile="build/jar/HelloWorld.jar" basedir="build/classes">

      <manifest>

        <attribute name="Main-Class" value="oata.HelloWorld"/>

      </manifest>

    </jar>

  </target>

 <target name="run">

   <java jar="build/jar/HelloWorld.jar" fork="true"/>

 </target>

</project>

e.g. Maven pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"

    xmlns:xsi="http://www.x.org/xx/xxy"

    xsi:schemalocation="xx">

  <modelVersion>4.0.0</modelVersion>

  <groupId>com.dahang</groupId>

  <artifactId>HelloWorld</artifactId>

  <version>0.0.1-SNAPSHOT</version>

</project>

5.Summary:

Ant is very declarative.

Maven follows a convention over configuration model

Ant may be easier to learn, but it really is only beneficial as a scripting tool.

Maven is really centered around managing your entire project's lifecycle.

Maven浅析-3 Ant Vs Maven的更多相关文章

  1. Maven浅析-2 什么是Maven

    1.简单点讲:Maven就是一个项目构建工具.它可以生成一个artifact(component),还可以帮我们管理项目依赖(如附加的组件Filters等). 2.从整体讲:Maven也可以看作一个项 ...

  2. Ant和Maven的作用是什么?两者之间功能、特点有哪些区别?

    Ant和Maven都是基于Java的构建(build)工具.理论上来说,有些类似于(Unix)C中的make ,但没有make的缺陷. Ant是软件构建工具,Maven的定位是软件项目管理和理解工具. ...

  3. 服务端技术进阶(六)Ant和Maven的作用是什么?两者之间功能、特点有哪些区别?

    服务端技术进阶(六)Ant和Maven的作用是什么?两者之间功能.特点有哪些区别? Ant和Maven都是基于Java的构建(build)工具.理论上来说,有些类似于(Unix)C中的make ,但没 ...

  4. Ant和Maven

    Ant和Maven都是基于Java的构建(build)工具.理论上来说,有些类似于(Unix)C中的make ,但没有make的缺陷.Ant是软件构建工具,Maven的定位是软件项目管理和理解工具. ...

  5. Java 中三大构建工具:Ant、Maven和Gradle

    Java世界中主要有三大构建工具:Ant.Maven和Gradle 目前:Ant已经销声匿迹.Maven也没落了,而Gradle的发展则如日中天. Maven的主要功能主要分为5点,分别是依赖管理系统 ...

  6. 构建工具 Ant、Maven和Gradle

    构建工具的作用 依赖管理 测试,打包,发布 主流的构建工具 Ant:提供编译,测试,打包 Maven:在Ant的基础上提供了依赖管理和发布的功能 Gradle:在Maven的基础上使用Groovy管理 ...

  7. [转载]ant和maven的区别

    Ant是软件构建工具,Maven的定位是软件项目管理和理解工具.Maven除了具备Ant的功能外,还增加了以下主要的功能: 1)使用Project Object Model来对软件项目管理: 2)内置 ...

  8. 【Java EE 学习 82 下】【MAVEN整合Eclipse】【MAVEN的一些高级概念】

    一.MAVEN整合Eclipse MAVEN是非常优秀,但是总是要开命令行敲命令是比较不爽的,我们已经习惯了使用IDE,所以还有一种将MAVEN整合到Eclipse的方法. 详情查看:http://w ...

  9. maven系列(1)-maven的介绍与安装

    maven的介绍 maven是大名鼎鼎的Apache下的java构建工具. Apache Maven is a software project management and comprehensio ...

随机推荐

  1. jquery实现可展开收缩的首页大图广告展示方式 泰山压顶代码 V2.0

    把代码做成js网站进行统一调用 if (typeof jQuery == 'undefined') { document.writeln('<script type="text/jav ...

  2. C++相关资源

    http://www.cnblogs.com/xi52qian/p/4186983.html语言ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committee ...

  3. C#读取带命名空间的xml,xaml文件的解决方案

    使用C#读取xml文件有三种常用的方式: 1.xmlDocument 2.XmlTextReader 3.Linq To Xml 但是这些方式在读写有些带命名空间的xml时就不知道怎么办了(例如把xa ...

  4. ubuntu导出文件

    ye@aliyun:python$ ./deploy.sh backup static-rw-r--r-- 1 ye ye 174K 2014-03-22 10:36 ./backup/fbz_sta ...

  5. 分享关于学习new BufferedWriter()方法时常遇到的一个无厘头的问题

    今天在学习IO的过程中,关于处理流BufferedWriter的使用时,遇到了一个很犯二但是又会让初学者经常没有避免的问题,百度后才发现有人和我一样二,这还是对java基础掌握得不牢固的原因啊. 首先 ...

  6. Java 8 的 JVM 有多快?Fork-Join 性能基准测试

    Java 8 已经发布一段时间了,许多开发者已经开始使用 Java 8.本文也将讨论最新发布在 JDK 中的并发功能更新.事实上,JDK 中已经有多处java.util.concurrent 改动,但 ...

  7. 关于多域名EXCHANGE如何设置PTR的问题

    找了很多网页, 有效的是MX可以设置不同的域名,但PTR只设置一个即可... 如果设置为一个IP为两个PTR,则在进行测试时,会发生DNS ROBBINS,即一次找这个,一次找那个. 切记. .... ...

  8. [转贴]漫谈C语言及如何学习C语言

    抄自http://my.oschina.net/apeng/blog/137911,觉得很有用,收藏它 目录:[ - ] 为什么要学习C语言? C语言学习方法 1,参考书籍 2,动手实验环境搭建 3, ...

  9. svn删除目录后提交显示Item 'XXXX' is out of date解决方法

    1.在要删除的目录上执行 svn 的 Delete 2.来到要删除目录的上级目录,执行更新操作.  3.找到要删除的目录,会显示冲突状态,在这个目录上执行Resolved.  4.在这个要删除的目录上 ...

  10. USACO3.32Shopping Offers(DP)

    五维DP,听着挺多的,貌似就是挺裸的dp, 最近貌似做简单的DP挺顺手..1A dp[i][j][e][o][g] = min(dp[i][j][e][o][g],dp[i-i1][j-i2][e-i ...