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. js 中如何通过提示框跳转页面

    通过提示框跳转页面 <!doctype html> <html lang="en"> <head> <meta charset=" ...

  2. 求和函数 sum详解

    sum()的参数是一个list: >>> sum([1,2,3]) 6 >>> sum(range(1,3)) 3 还有一个比较有意思的用法 a = range(1 ...

  3. ECharts使用记

    系统开发厂商一直都使用基于Flash的图表解决方案,例如Fushioncharts.本人也曾略做研究,当时对js不熟,只能采用静态xml方式,颇为繁琐. 自从了解了html5的新特性,意识到基于Can ...

  4. crontab没有正确重定向导致磁盘inode节点空间满

    通常是发现磁盘没有满但是无法写入文件.提示“no space left on device”    用df -i 查看,应该会发现相应的分区是100%    一般都是crontab的job有问题,造成 ...

  5. [转]ef获取某个表中的部分字段值

    我有个新闻表 id,title,body,createtime,author,click 使用ef4.1 仅仅读取 id,title,createtime 并显示在页面上. public static ...

  6. eclipse开发android程序常见问题解决办法

    1:R.java不自动更新或不见,gen文件夹里没生成文件. 解决办法: 这个一般是xml文件中有错误,如有英文大写,属性值错误等,解决了就会好. 如果错都排除了还没有生成或更新,那么可以点击proj ...

  7. Servlet的一些API使用介绍

    final String rootPath = getServletConfig().getServletContext().getRealPath("/");  获取项目运行的根 ...

  8. ABAP打开TCODE

    CALL FUNCTION 'TH_CREATE_MODE'  EXPORTING    transaktion    = 'ZGNBWD001'  EXCEPTIONS    max_session ...

  9. 教你如何监控 Apache?

    什么是 Apache? Apache 是一款 HTTP 服务器软件,现在更名为 "http",而 Apache 则成了一个(包含httpd的项目)巨大的基金组织,根据习惯后文都用 ...

  10. Qt 子窗口内嵌到父窗口中(无边框附体show即可)good

    有时需要把一个子窗口内嵌进入父窗口当中. 我们可以这样做 1.新建一个QWidget 或者QDialog的子类 ClassA(父类为ClassB) 2.在新建类的构造函数中添加设置窗口属性 setWi ...