Ant的一些核心概念:
build.xml:构建文件是以XML 文件来描述的,默认构建文件名为build.xml。
project:每个构建文件包含一个工程。
<project name="HelloAnt" default="run" basedir="."> </project>
property:属性,一个property 有一个名称和一个值,Property 可以用于task 的属性值,通过${}来调用,类似于EL表达式。
<property name="src" value="src" />
depends:每个工程包含若干个目标(target),目标可以依赖于其他的目标。
<target name="init" depends="clean"> <mkdir dir="${src}" /> </target>
task:目标包含一个或多个任务(task),一个task 是一段可执行的代码,"javac"就是一个典型的task。
<mkdir dir="${src}" />
下面是Ant一些常用标签的介绍,我用实例来讲解一下会更生动些:
1.<project>
<project name="HelloAnt" default="run" basedir="."> <description>说明信息</description> <property name="dest" value="classes" /> <target name="init" depends="clean"> ... </target> </project> <!-- default:表示默认的运行目标(target),这个属性是必须的 basedir:表示项目的基准目录 name:表示项目名 description:表示项目的描述,可在<project>之间添加 -->
每个构建文件都对应于一个项目,必须包含一个<project>元素,但是大型项目经常包含大量的子项目,每一个子项目都可以有自己的构建文件。
2.<target>
一个项目标签下可以有一个或多个target标签,target标签可以依赖于其他的target标签。例如,有一个target用于编译程序,另一个target用于生成可执行文件。在生成可执行文件之前必须先编译该文件,因此可执行文件的target依赖于编译程序的target。
<target name="init" depends="clean" description="初始化" id="init" if="xx" unless="xx"> Task... </target> <!-- name:表示名称,这个属性是必须的。 depends:表示依赖的目标。 id:id标识 description:表示目标的描述,也可在<target>之间添加<description></description>。 if:表示仅当属性设置满足时才执行。 unless:表示当属性没有设置时才执行。 -->
Ant的depends属性指定了target的执行顺序,Ant会依照depends属性中target出现顺序依次执行每个target。在执行之前,首先需要执行它所依赖的target。一个target只能被执行一次,即使有多个target依赖于它。if或unless属性用来判断是否执行该target。
3.<property>
<!-- 设置name,value键值对应属性 --> <property name="dest" value="classes" /> <!-- 设置classpath --> <property classpath=""/> <!-- 设置classpath引用 --> <property classpathref=""/> <!-- 读取文件中的属性配置 --> <property file="xx.properties"/> <!-- 读取网络位置上属性文件中的属性配置 --> <property url="http://url/xx.properties"/> <!-- 读取属性文件中的属性配置 --> <property resource="xx.properties"/> <!-- 读取环境变量 --> <property environment="env"/> <!-- 设置路径结构 --> <property location="/usr/local/"/> <!-- 指向task --> <property taskname="init"/>
property标签可以帮助我们设置一些经常用到的属性,类似于Java中的变量,这样我们可以在多个task中方便调用,下面是一个引用属性文件的实例。
假设项目根目录存在build.properties 属性文件,用于保存公共的属性,其内容为:
src = src dest = classes
然后在build.xml 中引用此属性文件:
<property file="build.properties" /> <property name="src" value="${src} " /> <property name="dest" value="${dest} " />
我们可以通过<echo>${dest}</echo>输出相应信息测试是否载入成功。
<?xml version="1.0" encoding="UTF-8" ?> <project name="HelloAnt" default="run" basedir="."> <property file="build.properties" /> <property name="src" value="${src} " /> <property name="dest" value="${dest} " /> <target name="run"> <echo>${dest}</echo> </target> </project>
4.文件相关
(1)<mkdir>
该标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名
<mkdir dir=”${dir}”/>
创建了一个目录,${dir}是前面已经声明的property属性
(2)<tempfile>
建立一个文件名称为temp.bak,后缀为.bak 的文件
<tempfile property="temp" destDir="build" suffix=".bak"/>
(3)<rename>
重命名文件/文件夹
<rename src="hello.jar" dest="helloAnt.jar"/>
将hello.jar重命名为helloAnt.jar
(4)<move>
移动文件/文件夹
<move todir="bin"> <fileset dir="${dest}"> <include name="**/*.class" /> <exclude name="**/*_temp.class" /> </fileset> </move>
将${dest}目录下所有class文件移动到bin目录下,排除"_temp"结尾的class文件。
<?xml version="1.0" encoding="UTF-8" ?> <project name="HelloAnt" default="run" basedir="."> <property name="dest" value="classes" /> <target name="run"> <move todir="bin"> <fileset dir="${dest}"> <include name="**/*.class" /> <exclude name="**/*_temp.class" /> </fileset> </move> </target> </project>
(5)<copy>
复制文件/文件夹
<copy file="file1" tofile="file2"/>
将file1复制为file2
<copy file="file" todir="dir"/>
将file复制到dir中
<copy todir="src2"> <fileset dir="src"> <include name="**/*.java"/> <exclude name="**/*_tepm.java"/> </fileset> </copy> 或 <copy todir="src2"> <fileset dir="src" excludes="**/*_temp.java" includes="**/*.java"/> </copy>
将src下的java文件复制到src2目录下,同时排除"_temp"结尾的java文件,两种写法均可。
<copyfile src="file1" dest="file2" forceoverwrite="true" /> <copydir src="${src}" dest="${dest}" includes="**/*.java" excludes="**/_temp.java" />
复制文件和文件夹,跟上面的功能是一样的。
<delete defaultexcludes="false"> <fileset dir="src" includes="**/*.svn"/> </delete>
通常情况下,svn 文件默认是 excludes 的,所以这里要设置一下
<deltree dir="src"/>
删除src目录树,即所有子文件夹内容
(6)<delete>
删除一个文件或一组文件
<delete file="file1"/>
删除file1文件
<delete dir="dir1"/>
删除dir1目录
<delete> <fileset dir="dir1" includes="**/*.bak"/> </delete>
删除dir1下所有bak文件
<delete includeEmptyDirs="true"> <fileset dir="dir1"/> </delete> 或 <delete includeEmptyDirs="true"> <fileset dir="dir1" includes="**/*"/> </delete>
删除dir1下所有文件
(7)<touch>
主要是用于修改最后修改时间
<touch file="file1"/>
如果文件不存在,先创建文件,更改最后修改时间为当前系统时间
<touch file="myfile" datetime="11/11/2011 11:11 pm"/>
如果文件不存在,先创建文件,更改最后修改时间为11/11/2011 11:11 pm
<touch datetime="11/11/2011 11:11 pm"> <fileset dir="src" /> </touch>
更改文件夹最后修改时间,文件夹需存在
5.输出信息
(1)<echo>
用于打印/输出信息,类似于log4j的info方法。
<echo message="hello!"> <echo message="${msg}"> <echo>${msg}</echo> <echo>hello!</echo>
以上四种方式均可以显示相应信息
<echo file="test.txt" message="hello Ant!"/>将"hello Ant!"写入test.txt文件中
相关推荐
【ANT-build.xml文件详解】 ANT-build.xml文件是Apache Ant构建工具的核心配置文件,它使用XML格式定义了构建项目的所有步骤和任务。Ant是Java社区广泛使用的自动化构建工具,它的主要优势在于跨平台性、易用性和...
Java Maven Apache Ant Zip 2.3 Jar包依赖详解 在Java开发中,Maven和Apache Ant是两种广泛使用的构建工具,它们帮助开发者管理和构建项目。本文将深入探讨`com.ckfinder:apache-ant-zip:jar:2.3`这个特定的依赖,...
### ANT文件详解:深入理解ANT及其在项目构建中的应用 #### Ant的概念与起源 Ant,全称为Apache Ant,是一款开源的、跨平台的项目构建工具,最初由James Duncan Davidson开发,现归属于Apache软件基金会Jakarta...
### ant标签详解 #### 1. `<project>` 标签 `<project>` 标签是构建文件的基础,每一个构建文件都有一个对应的项目,并且此标签作为构建文件的根节点。`<project>` 标签支持多种属性: - **default**:指定构建...
### ANT-build.xml 文件详解 #### Ant 的概念及与 Make 的比较 Ant 是一款开源的 Java 构建工具,它的设计理念主要是解决 Make 工具在跨平台应用中存在的问题。对于熟悉 Linux 的用户而言,Make 命令作为一种项目...
Ant build.xml 详解 Ant 是一个基于 Java 语言的编译工具,它的主要功能是自动化项目的编译和构建过程。Ant 的出现是为了克服 make 和其他编译工具的缺陷,它具有跨平台性、操作简单、易于维护和书写、结构清晰等...
Ant build.xml 文件详解 Ant 是一个项目管理工具,相比make命令,gnumake和nmake等编译工具,Ant克服了这些工具的缺陷。Ant 的优点包括跨平台性、操作简单、易于集成到开发环境中。Ant 的构建文件是 XML 格式的文件...
Ant 使用`<property>`标签来定义属性,这些属性可以作为变量在配置文件中被引用。例如,定义一个`src.dir`属性来表示源代码目录: ```xml ``` 三、目标(Targets) 目标是Ant构建中的可执行单元,它们定义了特定...
#### 四、Ant的构建文件详解 - **<project> 标签**: - **default**:指定默认运行的目标(Target),是必须的属性。 - **basedir**:项目的基准目录,默认情况下为构建文件所在的目录。 - **name**:项目的名称...
#### 三、Ant常见任务与标签详解 1. **`<javac>`**:用于编译Java源文件。 ```xml ${src.dir}" destdir="${build.dir}"> ${build.dir}"/> ``` 2. **`<java>`**:用于执行Java类文件。 ```xml $...
Ant可以与其他版本控制系统如Git、SVN等集成,进行版本控制操作。 ### 使用Maven或Gradle替代Ant 虽然Ant在早期Java开发中广泛使用,但随着Maven和Gradle的出现,它们凭借更强大的功能和更简洁的配置逐渐取代了Ant...
### 经典Ant笔记知识点详解 #### 一、Ant简介及功能 - **定义与作用:** - Ant是一款开源的Java平台上的自动化构建工具,主要用于简化软件项目的构建过程,支持多种任务,如编译Java源代码、运行Java程序、复制...
### Ant 详解 #### Ant 的概念 Ant 是一个开源的 Java 工具,主要用于构建、测试和部署 Java 应用...通过深入理解 Ant 的基本概念、构建文件结构及常用标签的使用方法,可以显著提高 Java 应用程序的构建效率和质量。
### ant实用实例 详细解析ant的用法 #### 一、Ant简介与基本概念 Apache Ant 是一个Java环境下的开源项目构建...这些实例不仅有助于理解Ant的基础用法,还能够帮助开发者快速上手Ant,并应用于实际项目的构建过程中。
### Ant概念详解 #### 一、Ant简介与背景 **Ant**是一款开源的Java构建工具,主要用于自动化构建Java应用程序。它的设计理念旨在简化构建过程并提高跨平台能力。Ant由Apache软件基金会开发,作为Jakarta项目的一...
此外,本书的配套光盘还免费提供了价值人民币330元的java教学视频,对java语言进行了全面讲解,帮助一些不会java语言的读者快速地从java基础知识的学习中过渡到java web的学习与开发上. 第1部分 xml篇. 第1章 xml...
Ant中的任务(task)是执行特定构建操作的基本单位,可以分为三类: - **核心任务**:由Ant自身提供的基本任务,如编译、复制文件、压缩等。 - **可选任务**:来源于第三方的任务,通常需要下载额外的JAR文件才能...
- **快速入门**: 即使是没有Ant经验的新手也可以快速掌握基本操作。 ##### **1.3 可扩展性** - **自定义任务**: 开发者可以通过编写Java类来扩展Ant的功能,实现更复杂的构建逻辑。 - **社区支持**: Ant拥有活跃...
Ant的构建文件由`<project>`标签作为根元素,包含了项目的配置信息,包括默认执行的目标、项目的基本目录、项目名称和描述。`<project>`标签的关键属性包括: 1. `default`: 指定构建时默认执行的目标。 2. `basedir...
Ant.jar 最新包详解 Ant 是 Apache 软件基金会开发的一个开源项目,它是一个基于 Java 的构建工具,主要用于自动化软件项目的构建、编译、测试和部署过程。Ant 使用 XML 格式的构建文件(build.xml)来定义任务,...