`
fer2005
  • 浏览: 4320 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Ant工具的使用和说明

阅读更多

Ant是什么

Ant是Apache的一个开源项目。它是一个跨平台的工具,主要用于项目项目的自动编译和打包和测试等。

Ant的优点

1.与平台无关,因为它是基于JAVA开发的。

2.脚本格式是基于XML,维护起来相对简单。

Ant的安装

1.在Apache的官网下载

    http://www.apache.org/dist/ant/binaries/ 选择最新的apache-ant-1.7.1-bin.zip

2.解压安装

   解压到本机目录,如D:Ant

   1.运行----cmd

   2.配置环境变量

         set JAVA_HOME=JDK安装路径

         set ANT_HOME = D:Ant (Ant的安装路径)

   3.配置系统变量

         set PATH=%PATH%;%JAVA_HOME%\bin;%ANT_HOME%\bin

         注意,一定要加上%PATH%;

    4.测试

         直接在cmd窗口中输入ant -version,然后回车即可看到当前ant的版本信息

Ant的基本元素

 Ant是基于XML文件编写的,默认使用的文件为build.xml。下面拿一个简单的HelloWorld示例来演示。

    1.E:build.xml如下:

          

<?xml version="1.0" ?>
<project name="HelloWorld">
     <target name="test">
          <echo message="Hello,World!" />
     </target>
</project>

    2.cmd----进入E盘----运行ant test--出现以下提示:        

            Buildfile: build.xml

            test:
                [echo] Hello,World!

            BUILD SUCCESSFUL
            Total time: 0 seconds

如果配置文件不是build.xml,而是test.xml,此时需要在ant后面加上一个参数ant -f test.xml test,-f 后面带的参数就是配置文件的文件名。

Ant配置文件关键属性的解析

1.project

    project是Ant文件的根元素,必须包含至少一个project。在project下可以包含多个target。

    它主要有以下属性

       1) name

              用来指定project元素的名称

       2)default

              定义ant命令默认执行的target

       3)basedir

              用于指定运行的基本路径信息。若未定义则为ANT_HOME

     修改上面的build.xml,如下:

 

<?xml version="1.0" ?>
<project name="HelloWorld" default="test1" basedir="D:wsdl">
     <target name="test">
          <echo message="Hello,World!" />
     </target>
     <target name="test1">
          <echo message="Hello,${basedir}" />
     </target>
</project>

 

    cmd---E:-----ant--回车显示: 

        Buildfile: build.xml

        test1:
            [echo] Hello,D:\wsdl

            BUILD SUCCESSFUL
        Total time: 0 seconds

     从结果很明显可以看出名字为test的target并没有执行,执行的是default定义的test1。而basedir属性也打印出来了,为D:\wsdl。注意:属性值的取法为${属性名}

2.target

   target是Ant执行的任务单元,一个target里有一个或者多个任务。

   它主要有如下属性:

        1)name

              定义target的名字,这个名称在一个project中是唯一的。ant可以根据target的name来定位target。

        2)depends

             当targetA的执行需要targetB的运行结果时,可以定义targetA依赖于targetB,执行时B会先执行。

        3)if

             判断属性是否存在,存在则执行target,否则不执行。

        4)unless

             与if相反,判断属性是否不存在,不存在执行target,否则不执行。

        5)description

             对当前target的描述

       修改上面的build.xml文件如下:

              

<?xml version="1.0" ?>
<project name="HelloWorld" default="test1" basedir="D:wsdl">
     <target name="test">
          <echo message="Hello,World!" />
     </target>
     <target name="test1" depends="test" if="t" description="this is test1">
          <echo message="Hello,${basedir}" />
     </target>
</project>

 

    cmd --- E:----ant---回车显示:

      Buildfile: build.xml

      test:
         [echo] Hello,World!

      test1:

      BUILD SUCCESSFUL
      Total time: 0 seconds

    因为test1依赖于test,所以会先执行test,由于t这个属性并不存在,所以test1不会执行。如果将上面的if改成unless,则test1和test都会执行。

3.property

      property是用来定义属性名称及属性值的。它有两种方式定义,第一种直接在build.xml文件中定义;第二种是在外部属性文件里定义,然后在build.xml中引入。如test.properties,引入<property file=” test.properties”/>。test.properties的格式为name=value。

       修改上面的build.xml文件如下:

 

<?xml version="1.0" encoding="UTF-8"?>
<project default="test" basedir=".">	
        <property file="build.properties" />
        <property  name ="name"  value ="fer2005"/> 
        <property  name ="age"  value ="30"/> 
	<target name="classes">
		<echo message="name:${name} age:${age}" />
	</target>	
</project>

    运行显示:

          Buildfile: build.xml

          test:
              [echo] name:fer2005 age:30

          BUILD SUCCESSFUL
          Total time: 0 seconds

Ant的主要任务

          1.echo

             输出信息,有四个属性:message file append level

              message:需要打印的消息

              file:需要将打印的信息放入哪个文件

              append:是否将消息追加到文件末尾,true追加,false则直接替换

              level:消息输出的控制级别,有info,warning,error

          修改build.xml文件如下:

             

<?xml version="1.0" encoding="UTF-8"?>
<project default="test" basedir=".">	
        <property file="build.properties" />
        <property  name ="name"  value ="fer2005"/> 
        <property  name ="age"  value ="30"/> 
	<target name="test">
		<echo message="name:${name} age:${age}" />
		<echo message="this is a echo test" file="test.txt" append="true" />
	</target>	
</project>

         运行,然后结果在E:test.txt中去查看。可以看见在test.txt中有this is a echo test。重新运行一次,则会有两个this is a echo test。若将append属性去掉重新运行则又只有一个this is a echo test了。

          2.mkdir

               新建目录,只有一个属性

                dir:定义新建的文件夹名称。

               

   <mkdir dir="test" />

             3.delete

                 删除目录或文件,有四个属性

                 file:所要删除的文件

                 dir:只有找一个属性时,删除指定的目录

                 includeEmptyDirs:是否包含空目录

                 includes:包含何种类型的文件,可以使用通配符,与windows系统中的搜索功能相似。

                 修改build.xml如下:

 

<?xml version="1.0" encoding="UTF-8"?>
<project default="test" basedir=".">		
	<target name="test">
		<delete includeEmptyDirs="true" dir="." includes="*.txt"></delete>
	</target>
</project>

 

              删除当前目录下的空目录和所有txt文件。

              也可以写成这种格式:

                   

<?xml version="1.0" encoding="UTF-8"?>
<project default="test" basedir=".">		
      <target name="test">
           <delete includeEmptyDirs="true"> 
               <fileset dir="." includes="*.txt"/> 
           </delete>
      </target>
</project>

 

 

            4.copy

                复制文件或目录,主要有四个属性

                   file:需要复制的文件

                   tofile:复制好的新文件

                   dir:需要复制的目录

                   todir:复制到新的目录

               复制文件               

<copy file="build.xml" tofile="test.xml"></copy>

                复制目录

  <copy todir="../testnewdir"> 
            <fileset dir="testsrcdir"/> 
  </copy>

                复制文件到目录 

<copy file="test.txt" todir="../newdir"/>

 

              5.move

 

                   移动文件或目录,与copy类似

         移动单个文件(重命名):                    

<move file="srcfile" tofile="newfile"/>

                    

          移动文件到另一目录:

 <move file="srcfile" todir="newdir"/>

  移动目录:       

<move todir="newdir"> 
           <fileset dir="srcdir"/> 
</move>

 

 利用Ant对Java程序的编译和打包

   1.Java程序编译

           javac命令

           使用方法如下:

           IDE:Eclipse

            1.新建Java工程。如TestAnt

            如图所示:

                      新建Java工程的结构图

                  2.新建类Test.java

                      

package com.fer2005.test;

public class Test {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("this a test class");
	}
}

 

                 3.在工程TestAnt目录下新建build.xml文件

                    

<?xml version="1.0" encoding="UTF-8"?>
 <project  name ="TestAnt" default ="compile"  basedir ="."> 
     <target  name ="clean"> 
        <delete  dir ="build"/> 
     </target> 
     <target  name ="compile"  depends ="clean"> 
        <mkdir  dir ="build/classes"/> 
     <javac  srcdir ="src"  destdir ="build/classes"/> 
     </target> 
</project > 

               执行compile前必须先删除build文件夹,然后通过mkdir建立文件夹,javac编译当前程序,保存的路径是build下的classes目录下。   

               4.在build.xml上右键Run As---Ant Build

               5.刷新工程,即可看见生成文件夹和class文件。如图所示:

                      javac后的工程目录结构

 

               java命令

                    运行程序,执行类中的main方法。修改build.xml:

                         

<?xml version="1.0" encoding="UTF-8"?>
<project name="TestAnt" default="run" basedir=".">
	<target name="clean">
		<delete dir="build" />
	</target>
	<target name="compile" depends="clean">
		<mkdir dir="build/classes" />
		<javac srcdir="src" destdir="build/classes" />
	</target>
	<target name="run" depends="compile">
		<java classname="com.fer2005.test.Test">
			<classpath>
				<pathelement path="build/classes" />
			</classpath >
		</java >
	</target >
</project >

                  然后按上面的方法Ant build,打印出如下信息:

                        Buildfile: D:\workspace\TestAnt\build.xml
                             clean:
                                    [delete] Deleting directory D:\workspace\TestAnt\build
                             compile:
                                    [mkdir] Created dir: D:\workspace\TestAnt\build\classes
                                    [javac] Compiling 1 source file to D:\workspace\TestAnt\build\classes
                             run:
                                    [java] this a test class
                         BUILD SUCCESSFUL
                         Total time: 641 milliseconds

                        jar

                        对java工程进行打包,修改build.xml:

                       

<?xml version="1.0" encoding="UTF-8"?>
<project name="TestAnt" default="jar" basedir=".">
	<target name="clean">
		<delete dir="build" />
	</target>
	<target name="compile" depends="clean">
		<mkdir dir="build/classes" />
		<javac srcdir="src" destdir="build/classes" />
	</target>
	<target name="run" depends="compile">
		<java classname="com.fer2005.test.Test">
			<classpath>
				<pathelement path="build/classes" />
			</classpath >
		</java >
	</target >
	<target name="jar" depends="run">
		<jar destfile="TestAnt.jar" basedir="build/classes">
			<manifest>
				<attribute name="Main-class" value="com.fer2005.Test" />
			</manifest >
		</jar >
	</target>
</project >

 

                     运行完成后可以看见生成的jar包。

 

            2.Java Web 工程的编译和打包

                1.新建一个web工程,结构图如下:

 

                           web工程结构

                      2.修改build.xml

                             

<?xml version="1.0" ?>
<project name="TestAnt" default="war" basedir=".">
	<target name="clean">
		<delete dir="build" />
	</target>
	<target name="compile" depends="clean">
		<mkdir dir="build/classes" />
		<javac srcdir="src" destdir="build/classes" />
	</target>
	<target name="run" depends="compile">
		<java classname="com.fer2005.test.Test">
			<classpath>
				<pathelement path="build/classes" />
			</classpath >
		</java >
	</target >
	<target name="jar" depends="run">
		<jar destfile="TestAnt.jar" basedir="build/classes">
			<manifest>
				<attribute name="Main-class" value="com.fer2005.Test" />
			</manifest >
		</jar >
	</target>
	<target name="war" depends="jar">
		<war  destfile ="build/TestAntWeb.war"  webxml ="WebRoot/WEB-INF/web.xml"> 
		     <fileset  dir ="WebRoot"  includes ="**/*.jsp"/> 
		            <lib  dir ="WebRoot/WEB-INF/lib"/> 
		            <classes dir="build/classes"/> 
		        </war> 
		</target>
</project >

 

                       war

                              destfile:生成的war包的路径和文件名

                               webxml:web工程的配置文件web.xml所在路径

                               <fileset  dir ="WebRoot"  includes ="**/*.jsp"/> :打包webroot下的所有jsp文件

                               lib:包所在的路径

                               classes:JAVA编译后的类文件路径。

                   3.运行即可得到war包TestAntWeb.war。

                   4.将TestAntWeb.war放到%TOMCAT_HOME%\webapps下,启动tomcat测试war包是否可用。

   

 

 

 

  • 大小: 5.4 KB
  • 大小: 10.7 KB
  • 大小: 13.3 KB
0
0
分享到:
评论

相关推荐

    ant工具下载和安装说明

    ant是一个功能非常强大的编译工具,辅助软件开发,提供开发效率

    ant的基本配置说明

    Ant 是著名Java开源组织Apache的一个项目,是一个基于java的build工具。它可以使你通过ant脚本语言,自动你的项目拷贝到某个目录,发布项目,或者生成一些代码,执行SQL语言。总之它可以帮助你完成项目开发中除了...

    ant打包工具

    ant打包工具,可以实现一键轻松打jar包,内有使用说明

    ant构建工具(ant API)

    跨平台 --因为ant是使用java实现的,所以它跨平台 使用简单--与ant的兄弟make比起来 语法清晰--同样是和make相比 功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有多少功能。当你自己开发一些...

    Ant使用说明

    一个使用了Ant的Web项目 博文链接:https://sosuny.iteye.com/blog/451934

    Ant脚本详解说明

    Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。

    ant安装文件及说明

    linux下的ant工具的安装文件及安装说明文档。

    ant打包编译全套资料

    ant标签说明、ant案例、ant与eclipse工具配置以及使用

    ant build.xml构建使用案例

    ant是apache组织的一个开源项目,自己可以在http://ant.apache.org进行下载,也可以下载本资源,下载之后 1、解压缩 2、配置环境变量,将解压缩的路径(你... 说明:这个是一个项目开发的辅助工具,比较简单且好用。

    Ant使用指南

    如果选择从命令行使用 Ant,并且 Ant 还没有安装到机器上,您需要 遵循 Ant 主页上的安装说明。相反,如果决定仅使用 Eclipse 环境,您不需要单独安装 Ant,因 为 Eclipse 已经包括了它。如果还没有 Eclipse,...

    ant1.9资源

    在Ant工具中每一个任务封装了具体要执行的功能,是Ant工具的基本执行单位。在本小节中,主要引导读者来看下Ant的常用任务及其使用举例。 1. copy任务 该任务主要用来对文件和目录的复制功能。举例如下: Eg1.复制...

    ant构件示例说明

    NULL 博文链接:https://xiongzhenhui.iteye.com/blog/600812

    Android代码-Ant-Multiple-Package

    本项目是针对android在eclipse开发环境下利用android官方自带的ant打包工具进行多渠道打包的一个工具,具有打包快速配置简单的特点。 二 环境准备 需要正确配置java环境,ANDROID_HOME开发环境,ANT_HOME开发环境。 ...

    wx-react-app:使用Create-React-App 和 Ant Design Pro 框架整合,演示地址:

    重要说明为什么不使用 Ant Design 官方的构建工具进行构建?由于官方构建工具,在 Debug 的时候,无法在源码上进行调试,通过浏览器 Sources 看到的源码是编译后的代码,给调试造成了很大的障碍,所以采用上述方法...

    Ant 1.9.2 API (CHM格式)

    Ant是Java程序员的一个好的工具,主要可以帮助程序员进行java项目的的管理,包括批量编译、部署、文档生成等工作,其用途远不止如此,ant内置了大量的API进行各种文件系统操作,在各种应用服务器中都被广泛应用于...

    基于 springboot、ant-design-vue 的开源框架+源代码+文档说明

    已内置很多优秀的基础功能和高效的 工具,包括:系统权限组件、数据权限组件、数据字典组件等。前端界面风格采用了阿里开源的`ant-design-vue`框架。密码加密、访问验证、数据权限验证。使用Maven做项目管理,提高...

    ant入门指南

    ant工具的基本用途说明,还有一个比较常用的实例。

    基于ant的代码生成器

    该代码生成工具说明: 1.实现模板的灵活配置; 2.支持DB2、MySQL、HSQL、PostgreSQL、SQLServer2005、Oracle; 3.建议先用已有的模板进行简单代码的生成测试,待掌握后可进行灵活配置。 快速的开发,其实就是这么...

Global site tag (gtag.js) - Google Analytics