ant是用来干什么的_elena_w的博客-程序员秘密

技术标签: Java  

一般情况下,大多数软件公司做开发的时候都不用myeclipse开发,这是利用ant部署就给我们带来极大的方便,它先将你的project打包成war包,然后部署到指定的服务器中。

Ant的概念
当一个代码项目大了以后,每次重新编译,打包,测试等都会变得非常复杂而且重复,因此c语言中有make脚本来帮助这些工作的批量完成。在Java 中应用是平台无关性的,当然不会用平台相关的make脚本来完成这些批处理任务了,ANT本身就是这样一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等。除了基于JAVA是平台无关的外,脚本的格式是基于XML的,比make脚本来说还要好维护一些。
每个ant脚本(缺省叫build.xml)中设置了一系列任务(target):比如对于一个一般的项目可能需要有以下任务。
* 任务1:usage 打印本脚本的帮助信息(缺省)
* 任务2:clean <-- init 清空初始化环境
* 任务3:javadoc <-- build <-- init 生成JAVADOC
* 任务4:jar <-- build <-- init 生成JAR

* 任务5:all <-- jar + javadoc <-- build <-- init 完成以上所有任务:jar javadoc

  而多个任务之间往往又包含了一定了依赖关系:比如把整个应用打包任务(jar)的这个依赖于编译任务(build),而编译任务又依赖于整个环境初始化任务(init)等。
注:我看到很多项目的ant脚本中的命名基本上都是一致的,比如:编译一般叫build或者compile;打包一般叫jar或war;生成文档一般命名为 javadoc或javadocs;执行全部任务all。在每个任务的中,ANT会根据配置调用一些外部应用并配以相应参数执行。虽然ANT可调用的外部应用种类非常丰富,但其实最常用的就2,3个:比如javac javadoc jar等。

Ant的优点
Ant是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点。
跨平台性。Ant是纯Java语言编写的,所示具有很好的跨平台性。
操作简单。Ant是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(构建文件)。
Ant通过调用target树,就可以执行各种task。每个task实现了特定接口对象。由于Ant构建文件时XML格式的文件,所以和容易维护和书写,而且结构很清晰。
Ant可以集成到开发环境中。由于Ant的跨平台性和操作简单的特点,它很容易集成到一些开发环境中去。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/github_27263697/article/details/78622221

智能推荐

多线程解决缓存穿透问题_即心即佛的博客-程序员秘密

缓存穿透: 所谓的缓存穿透,简单来讲就是查询某些不存在的key时,缓存和数据库查询结果都为空,而空的结果又不被缓存起来,而导致每次查询都去请求数据库层的情况。如果接口的并发足够大,那么同时有N多线程直接访问数据库的压力可想而知。 解决思路: 如果缓存未命中,那么只有一个线程访问数据库。示例代码如下:package com.primer.demo.util;import java.ut...

四种隔离级别及应用场景_Sunssai的博客-程序员秘密

数据库提供的四种隔离级别:01:Read uncommitted(读未提交):最低级别,任何情况都会发生。02:Read Committed(读已提交):可避免脏读的发生。03:Repeatable read(可重复读):可避免脏读、不可重复读的发生。04:Serializable(串行化):避免脏读、不可重复读,幻读的发生。 注: 四种隔离级别最高:Seralizable级别,最...

[nginx] 解决nginx反代websocket 1006 (abnormal closure)错误-GOFLY在线客服-GO语言实现开源独立部署客服系统..._小红帽2.0的博客-程序员秘密

当使用websocket服务实现在线客服系统GOFLY的时候如果前端不发送心跳包,在go代码里读取websocket内容时会隔60秒断线一次并且能看到日志里出现websocket 1006 (abnormal closure)这个是因为nginx反代后端ws服务的时候,没有设置读取超时时间proxy_read_timeout,默认是60秒设置的大一些就可以解决这个问题...

LINUX安装INTEL MEDIA SERVER STUDIO_supermanwg的博客-程序员秘密

最近在折腾Intel QuickSync技术,主要是要打算使用其提供的硬件编解码功能。看看是否能够有效的降低CPU的使用率。本来是以为直接下载ffmpeg的二进制可执行文件即可(在windows上,只要有安装好Intel的驱动以及硬件支持,直接使用ffmpeg的可执行文件,是可以正常运行的),没想到在linux平台下事情并没有想像的那么简单。需要这台的事情还是很多的。Intel官方提供的S

浅析XSS和CSRF攻击及防御_koastal的博客-程序员秘密

XSS攻击CSRF攻击XSS和CSRF的关系XSS防御CSRF防御总结以上介绍的攻击和防御方法都是一些基本的情况,所介绍的防御机制并不能保证绝对安全,但是应该可以防御一般的攻击情况了,我们做了这些处理总是比没做要好,不是么?

c++\OpenCV\多尺度Retinex图像增强算法_多尺度retinex算法_Bana.L的博客-程序员秘密

···//opencv接口函数void process(const char * sFilename/*, const char * rFilename*/){IplImage * orig = NULL;IplImage * dst = NULL;unsigned char * sImage, *dImage;int x, y, i;int nWidth, nHeight, step;orig = cvLoadImage(sFilename, 1); //打开图像 if (ori

随便推点

java 面向对象 购物车_hai-chu的博客-程序员秘密

一个商城包括多个商品、多个用户。拥有销售商品、展示商品和查找商品功能。2) 一个用户拥有一个购物车,购物车具有结算功能。3) 商城具有名称,静态字符串类型4) 用户类是抽象类,两个子类,售货员和顾客。购买商品作为抽象方法,售货员购买享八折优惠。5) 商品和用户不再用二维数组,而是用类集来表示。package tang;import java.u...

java--4函数和数组_zhyp29的博客-程序员秘密

函数就是定义在类中的具有特定功能的一段独立小程序,函数也称为方法函数四个方面:函数的定义函数的特点函数的应用函数的重载一、函数的定义及特点1) 什么是函数?函数就是定义在类中的具有特定功能的一段独立小程序,函数也称为方法2)Java中函数的格式:修饰符 返回值类型函数名(参数类型 形式参数1,参数类型 形式参数2,。。){  执行语句; retu...

java格式化日期时分秒_java的日期格式使用_weixin_39994665的博客-程序员秘密

java.util.Datejava.sql.Date java.sql.Time java.sql.Timestampjava.text.SimpleDateFormatjava.util.Calendarjava.util.Date日期格式为:年月日时分秒java.sql.Date日期格式为:年月日java.sql.Time日期格式为:时分秒java.sql.Timestamp日期格式为:...

【科技素养题】少儿编程 蓝桥杯青少组科技素养题真题及解析第4套_蓝桥杯大赛青少组科技素养国赛_小兔子编程的博客-程序员秘密

少儿编程 蓝桥杯青少组科技素养题真题及解析第4套1、有一袋巧克力棒被摔倒了地上,其中只剩三分之一是完整的,而其它的每一根都断成两段。在这袋内所有的巧克力棒(包括完整与断裂的)中,请问长度不小于原来整根巧克力棒一半的根数至少占所有的根数的几分之几()A、2/5B、3/5C、2/3D、1/2答案:B考点分析:考查数学概率知识如果摔成2根一样长,那不少于原来整根一半的数量就更多了,所以最少的情况就是如上图所示,长的变成3总共是5,所以3/5,答案B2、班级圣诞游艺会

IPv4地址分类_ipv4地址为什么要分类_又小雪666的博客-程序员秘密

目录1、为什么要把IP分类?2、如何分类1、为什么要把IP分类?(1)物理层面不易于实现。如果不分网络位和主机位,路由器的路由表就是都是32位的地址,那所有的路由器维护的路由表会很大,转发速度会变慢(因为查询变慢)。而且所有的路由器都要有全Internet的地址,所有人的路由器都要有足够的性能来存下全网地址。估计建造这样的Internet成本是现在的几万倍,甚至更高。估计你为了买个路由器,上网典当家产好几遍都买不起,有了网络地址,就可以限定拥有相同网络地址的终端都在同一个范围内,那么路由表

Android开发之Menu(菜单功能)学习小结_nullpointsun的博客-程序员秘密

Android平台提供了3中菜单的实现方式,即选项菜单(OptionMenu)、上下文菜单(ContextMenu)、子菜单(SubMenu).总的来说,还是比较容易实现的,新手上路,学了就把大概的写下来,以备健忘吧。[size=medium][b]1 Option Menu[/b][/size]这种应该是最常见的,一般手机上都会提供Menu的按钮,对应的就是这个菜单弹出。...

推荐文章

热门文章

相关标签