`
weigang.gao
  • 浏览: 482488 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Ant介绍 (1.0)

 
阅读更多

1.什么是Ant

Ant是一种构建工具,设计这个小型的程序的目的在于帮助软件团队开发大型的程序。它可以将所有的繁琐的工作任务自动化完成,包括编译代码,运行测试以及程序打包和重发布。Ant是用Java编写的,其特点是跨平台,易用,可扩展和可伸缩等。它既然可以用于小型的个人项目,也可以用于大型的,多团队协作的软件项目。Ant的目标是,将整个构建过程自动化。

 

2.Ant的核心概念

Ant是基于Java的,它会尽可能地隐藏所有平台细节。另外,Java本身就是高度可扩展的。这就使得我们很容易通过Java代码,Java平台的各种功能以及第三方的库去扩展Ant。同时你可以在Ant自身所在的Java虚拟机内部运行Java程序,这会令构建过程非常迅速。

 

构建文件

Ant使用一个名为构建文件的XML文件来描述如果构建一个项目。在构建文件中,开发这可以列出各种不同的高层构建意图,即目标(target),以及完成每个目标所需的动作,即任务(task)。

一个构建文件中包含一个项目(project)

每个构建文件都描述了如何构建一个项目。非常大的项目可能由多个更小的项目组成,每个小项目都拥有自己的构建文件。高层的构建文件能够协调众多子项目的构建过程。

每个项目中包含多个目标(target)

在构建文件内唯一的项目中,你可以声明多种不同的目标。这些目标既可以表现构建过程中的实际输出,比如可重发布的文件,也可以表现具体的动作,比如编译源代码运行测试。

目标还可以依赖于其他目标

在声明一个目标的同时,你还可以声明哪些目标必须在该目标之前先行构建。这样可以确保测试执行之前,代码已经完成编译;或者应用程序不会被上传,直到测试全部通过。Ant构建项目时,会按照声明中暗示的顺序执行各个目标。

目标中包含任务(task)

在每个目标的内部,你可以声明在这个构建过程阶段,该目标需要完成那些工作。做法就是列出组成这个阶段的每一个任务来。当Ant执行一个目标的时候,它会一个接一个地执行内部的任务。

任务完成具体的工作

Ant任务是XML元素,Ant在运行时会把它转换为动作(action)。任务的背后就是一个Java类,它会完成由任务属性和内部数据共同描述的工作。这些任务都是非常聪明的————它们可以自己执行参数验证,依赖性检查和错误报告等。

通过添加新任务扩展Ant

使用者可以很容易地编写新的类来扩展Ant,这也是Ant的核心优势。通常,总会有人曾经遇到过你正在面对的构建步骤,并且已经写好了相关的任务来执行它。这样你只要享用他们的成果就可以了。否者的话,你可以自己编写Java程序来扩展Ant,创造另一个可重用的Ant任务或者datatype。

总结一下,Ant能够读取包含一个项目(project)的构建文件。在项目中,各个目标描述了项目需要做的不同的事情。目标的内部是任务(target),后者将完成构建过程中的每个独立步骤。Ant按照目标的依赖性声明中暗示的顺序执行各个目标,而任务则包含在其中,一点点地构建应用程序。

 

3.构建文件概念图

 
一个典型的构建过程所用构建文件

<?xml version="1.0"?>
<project name="structured" default="archive">
   <!--创建输出目录-->
   <target name="init">
       <mkdir dir="build/classes" />
	   <mkdir dir="dist" />
   </target>
   
   <!--将编译结果保存在输出目录-->
   <target name="compile" depends="init">
       <javac srcdir="src" destdir="build/classes" />
       <echo>compilation complete!</echo>
    </target>
	
   <!--创建javadoc文档:<javadoc>任务为所有的org.*源代码文件创建javadoc文档-->
   <target name="doc" depends="init">
       <javadoc destdir="build/classes" sourcepath="src" packagenames="org.*" />
    </target>
	
	<!--创建归档文件:archive目标使用<jar>任务创建JAR文件,这个JAR文件包含了build/classes下的所有文件-->
	<target name="package" depends="compile,doc" >
	   <jar destfile="dist/project.jar" basedir="build/classes" />
	</target>
	
	<!--删除输出目录:clean目标通过删除输出目录,完成清理任务。它用到一个新任务<delete>-->
	<target name="clean" depends="init">
	   <delete dir="build" />
	   <delete dir="dist"  />
	</target>
	
	<!--将dist目录下的所有文件上传到ftp服务器上-->
	<target name="deploy" depends="package" >
	   <ftp server="${server.name}" 
	        userid="${ftp.username}"
			password="${ftp.password}" >
		 <fileset dir="dist" />
	   </ftp>
	</target>	
</project>
使用如下命令执行构建:ant -propertyfile ftp.properties
 
由于Ant任务都是Java类,因此调用每个任务的开销非常小。Ant会为每个任务线创建一个Java对象,然后设置它,最后调用它的execute()方法。像<mkdir>这种建档的任务只需要调用一个Java库方法来创建一个目录。像<ftp>这种稍微复杂些的任务需要调用第三方的FTP库来和远程服务器对话,然后可选地执行相关的检查,保证只上传比服务器上更新的文件。
  • 大小: 48.5 KB
  • 大小: 43.8 KB
分享到:
评论

相关推荐

    ant-contrib-1.0b2.jar.zip

    《Ant Contrib 1.0b2:Java构建工具的扩展库》 Ant Contrib是一个扩展了Apache Ant构建工具功能的库,其1.0b2版本是这个项目的一个早期发行版。Ant本身是一个基于Java的构建工具,它允许开发者通过XML描述文件来...

    ant-contrib-1.0b3的jar.zip

    《Ant Contrib 1.0b3:扩展Ant构建任务的利器》 在Java开发中,Ant作为一款强大的构建工具,广泛应用于项目的构建、打包、测试等环节。然而,Ant的标准库并不能满足所有复杂的构建需求,这时我们就需要引入额外的库...

    ant-props-1.0Alpha.jar.zip

    标签:ant-props-1.0Alpha.jar.zip,ant,props,1.0Alpha,jar.zip包下载,依赖包

    ant-contrib-1.0b1.jar.zip

    标题中的"ant-contrib-1.0b1.jar.zip"是一个包含特定版本(1.0b1)的"ant-contrib"库的压缩文件,其格式为ZIP,并且内部包含了一个JAR(Java Archive)文件。"ant-contrib"是Apache Ant的一个扩展库,提供了额外的...

    ant-contrib-1.0b2.jar

    ant-contrib-1.0b2.jar

    ant-contrib-1.0b3-bin.jar

    一、ant-contrib库介绍 "ant-contrib"库是由社区开发的一个非官方Ant扩展,它包含了一系列自定义的任务和条件,使得Ant在处理复杂的构建逻辑时更加得心应手。其中,"ant-contrib-1.0b3-bin.jar"是这个库的特定版本...

    ant-contrib-1.0.jar.zip

    《Ant Contrib 1.0.jar:Ant构建工具的扩展库》 在Java开发环境中,Apache Ant是一个广泛应用的自动化构建工具,它类似于Make,但基于Java,遵循XML规范,提供了跨平台的构建脚本。Ant Contrib是针对Ant的一个扩展...

    ant-contrib-1.0b3.jar.zip

    在这个特定的案例中,我们关注的是"ant-contrib-1.0b3.jar.zip"这个压缩包,其中包含了"ant-contrib-1.0b3.jar"文件,这是使用Ant进行循环打包时所必需的一个第三方库。 Apache Ant是一个由Java编写的开源构建工具...

    ant-contrib-1.0b3-bin.tar.gz

    本文将深入探讨Ant在多循环打包方面的应用,以及如何通过"ant-contrib-1.0b3-bin.tar.gz"这个压缩包中的Ant Contrib库来实现多渠道打包。 首先,让我们理解Ant的基本概念。Ant是一种基于XML的构建工具,它的任务是...

    ant-eclipse-1.0.bin.tar.bz2

    ant-eclipse-1.0 nutch

    ant-contrib-1.0b3.pom

    maven资源,ant-contrib-1.0b3.pom文件,包缺失使用

    ant-contrib-1.0b3

    ant-contrib-1.0b3

    ant-dotnet-1.0.jar.zip

    《Ant与.NET集成:ant-dotnet-1.0.jar.zip详解》 在软件开发的世界里,跨平台的构建工具Apache Ant和.NET Framework的交互日益重要。Ant作为一个Java平台的构建工具,广泛应用于Java项目的构建、部署和自动化任务。...

    ant-contrib-1.0b3.jar

    Ant-contrib 为 Ant 提供了与通常所使用的编程语言功能相同的 &lt;if&gt; 、 、等逻辑判断任务,支持对字符串的排序任务,甚至还支持常见的数学运算,如加、减、乘、除、求余等功能。在构建过程中灵活运用这两个扩展包,将...

    ant-eclipse-jvm1.2-1.0.jar.zip

    本文将详细介绍标题为"ant-eclipse-jvm1.2-1.0.jar.zip"的压缩包,以及其中包含的文件和它们在软件开发中的作用。 首先,我们要理解这个文件名的含义。"ant-eclipse-jvm1.2-1.0.jar.zip"暗示这是一个与Ant和Eclipse...

    ant-compress-1.0-sources.jar

    标签:ant-compress-1.0-sources.jar,ant,compress,1.0,sources,jar包下载,依赖包

    ant-contrib-1.0b3.jar.zip_Ant-Contrib_AntContribVersion_gravityr

    例如,"ant-contrib-1.0b3.jar"是Ant Contrib的一个版本,其中包含了一系列增强Ant功能的类和任务。这个特定的版本"1.0b3"是一个早期的发布版,但即便如此,它也提供了许多实用的构建工具。 在Ant项目中,如果没有...

    ant-compress-1.0.jar

    标签:ant-compress-1.0.jar,ant,compress,1.0,jar包下载,依赖包

    ant-antunit-1.0.jar

    标签:ant-antunit-1.0.jar,ant,antunit,1.0,jar包下载,依赖包

Global site tag (gtag.js) - Google Analytics