ant 使用指南 与 知识汇总

本文详细介绍了Ant构建工具的使用方法,包括安装部署、Ant的组成(Project、Target、Task)以及常见任务如copy、mkdir、replace、javac、java、jar、exec。强调了Ant的最佳实践,如保持构建文件简洁、使用单一构建文件、提供清理任务、管理任务从属关系、定义并重用文件路径、使用属性等,旨在提高团队构建效率和一致性。
摘要由CSDN通过智能技术生成

一、Ant是什么? 
Ant是一种基于Java和XML的build工具。

它可以帮助我们将项目开发过程中需要完成的各种步骤组织起来,通过一个简易的方式来构建整个项目。Ant究竟能做什么呢?这取决于Ant的任务(Task),Ant有哪些任务,就能完成哪些工作!一些典型的任务是:编译java源代码、运行java程序、拷贝文件或目录、将编译完成的类打包等等。 
       当然,Ant是一个开放的架构,任何人,都可以按照自己的方式,添加自己的任务(Task),这需要 
遵守Ant的一些规范。 

 

 

二、ANT的安装部署

 

1、  确保你的机器已经安装了JDK,确保你的path环境变量中包含有java虚拟机的运行程序,确保你的环境变量中有JAVA_HOME变量 
2、  下载ant并解压 
3、  设置ANT_HOME环境变量,指向ant解压根目录 
4、  在path环境变量中,添加ANT_HOME/bin目录 
5、  打开控制台,运行:ant 
6、  如果能够运行ant(忽略这些异常:Buildfile: build.xml does not exist!),而不是出现诸如命令无法解释的错误,那么你的ant就安装成功了 

 

三.Ant的运行靠的就是一个构建脚本,默认名称为build.xml,只要你构建一个这样的文件,按照规定把需要完成的工作任务写在这个配置文件中,然后在dos下运行ant就会执行这个文件,如果文件名不是默认的(例如mybuild.xml),则这样运行:ant -f mybuild.xml  ,如果该配置文件不存在将会报错:Buildfile: build.xml does not exist! 

 

 

三、ANT的组成(主要由三部分组成:Project、Target、Task)1、Project(项目)。基本属性:name、default、basedir。一个build.xml只能存在一个Project工程。

name :项目名称

default :缺省开始执行的Target

basedir :用于计算所有其他路径的基路径。

 

例1:<project name="dev" basedir="." default="dist">

 

2、Target。一个项目可以定义一个或多个Target、一个Target是一系列你想要执行的任务,而一个target一般包含若干task,如编译任务、打包任务、混淆任务。

 

 

Target的基本属性: name:target的名字,depends:该target依赖关系,description: target的描述信息。

 

例2:<target name="clean" depends="init" description="Clean dist and temp directories">

 

 

 

Ant在执行时以Target为单位,Target的depends属性又决定了哪个Target先执行,因此我们可以通过Target来构造编译顺序。

 

例3:<target name="copy" >
       <target name="javac" depends="copy">

       <target name="jar" depends="javac">

执行顺序是从下至上,依次执行,如果某个Target没有depends属性,那么就顺序执行。

 

 

 

例4:一个完整的Target:

<target name="compile" depends="replacesrc"   description="Compiling Java source files">

     <javac   srcdir="temp/src"  

             destdir="temp/build"

             debug="on"

             deprecation="false"

             optimize="true">

     <classpath refid="classpath"/>

     </javac>
</target>

 

 

3、Task。Ant执行的一系列任务是由Target构成的,而Target又是由数个小的Task构成的,task任务是最小的运行单位,我们可以把copy、delete、mkdir等操作认为是一个小任务。

 

 

(1)copy任务。

A.拷贝单个文件:

<copy file="Demo/manifest.mf" todir="temp/build/META-INF" /> 
解释:把一个文件拷贝到拷贝相关文件夹中。

B.拷贝文件夹:

<copy todir="temp/build">
     <fileset dir="temp/classes"/>
   </copy> 
     解释:把temp/build目录下的所有文件,拷贝到temp/classes目录中去

C.替换拷贝
<copy todir="temp/build">
   <fileset dir="temp/classes" includes="*.class" />
   <filterset>
        <filter token="@Time@" value="${app.time}"/>
   </filterset>
</copy> 
   解释:   <filterset>过滤集,可以将temp/classes文件夹下的存在@Time@标记的文件,替换为变量${app.time}值。这样在完成拷贝的同时也完成了替换任务。

(2)mkdir任务和delete任务

A.单独的delete和mkdir任务
      <delete dir="temp/src"/> 
      <delete file="temp/build/Thumbs.db" />
      <mkdir dir="temp/src"/>
   <

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值