ant编译java工程

来源:互联网 发布:js从入门到精通pdf 编辑:程序博客网 时间:2024/06/07 05:30

ant 脚本编译运行java应用


下面的代码是一个简单的ant 脚本用于java 应用编译示例:


<?xml version="1.0" encoding="UTF-8"?><project name="JavaTest" default = "anttest"><property name="src.dir" value="src" /><property name="dest.dir" value="dest" /><target name="prebuild"><mkdir dir="${dest.dir}" /><delete dir="${dest.dir}" /><mkdir dir="${dest.dir}" /></target><target name="build"><echo> build begin ...</echo><javac srcdir="${src.dir}" destdir="${dest.dir}" includeantruntime = "false"/><echo> build end ...</echo></target><target name="run"><echo>run begin ...</echo><java classname="com.example.test.Test"><classpath><pathelement path="${dest.dir}" /></classpath></java><echo>run end ...</echo></target><target name="anttest" depends="prebuild , build ,run"></target></project>


运行结果:


1. ant 脚本的入口

    1.1  在Eclipse 的ant 窗口运行

      双击javaTest 的图标时,默认的是选择<project name="JavaTest" default = "anttest"> 中的target 作为入口 。

   如果project没有配置default 属性,双击图标运行脚本的时候不会执行的任何target 。但是可以双击下面的target name直接运行target 。

     

      1.2 在命令行中运行

       进入build.xml目录,输入 ant ,脚本会默认执行该目录下build.xml文件中的target ;

       使用ant -f filename targetname 的方式,可以执行filename 文件下的targetname 任务 ;

2. 脚本的运行流程分析

     2.1 JavaTest project

     project 中定义了anttest ,prebuild ,run 三个 target ;

     两个属性,src.dir和dest.dir ;类似于全局变量的存在,使用的时候可以${}进行调用。


      2.2 anttest target

     运行脚本后,运行的target 顺序是:prebuild ,build ,run ;它们的执行先后是由target 的depends属性决定的,需要多个target 作为执行前提的时候, 脚本会按脚从左往右的顺序依次执行之前的任务,然后执行该target 。

      示例中的depends属性还可以写成:

      <target name="build" defealt = "prebuild">

      <target name="run" defealt = "build">

      <target name="anttest" defealt = "run">


       2.3 prebuild target 

      prebuild 任务的作用是删除上次生成的目标文件及新建目标文件存放目录;

     

      2.4 build target 

      <javac srcdir="${src.dir}" destdir="${dest.dir}" includeantruntime = "false"/>

      调用java 提供的javac 命令进行编译


       2.5 run target 

      调用java 命令运行生成的class 文件 。


3. 命令介绍

    3.1 delete 命令

    删除 文件: <delete file="filepath"/> 

    删除目录:<delete dir="dirpath"/>

    删除某种文件类型,example:

 <delete>
    //删除当前文件夹下后缀为.bak的所有文件    <fileset dir="." includes="**/*.bak"/>  </delete>
 

    3.2 mkdir 命令

    创建目录:<mkdir dir="dirpath"/>

    

    3.3 property

   创建一个变量: <property name="propertyname"  value="propertyvalue"/>

  从外部xxxx.properties文件中导入一些列的property值:<property file="xxxx.properties"/>

    3.4 参考文档:

    http://ant.apache.org/manual/index.html

       

     


     




0 0