`

Ant 详解

Ant 
阅读更多

Ant 详解

Target属性:

name: target名字

depends:用逗号分隔的当前target所依赖的target

if/unless:执行target所需要的条件

description:对这个target的一些描述

 

Task属性:

一个task是一段可执行的代码。task可以

		<!--在指定的类路径下是否有可用的资源-->
	  <available resource="TestTest.class">
	     <classpath refid="all.test.classes" />       
	  </available>

 有多个属性(也可以叫变量)。属性值可能包含对property的引用。这些应用会在task执行前被解析。

<target name="compile" depends="init">  
<javac srcdir="${src}" destdir="${dest}" />  </target>
 
其中的<javac srcdir="${src}" destdir="${dest}" /> 就是一个task。
 其中的 ${src} 就是对前面定义的property的引用。再执行javac 之前这些${*}会被解析。

 

复制文件到指定位置:

	        <copy file="1.txt" tofile="21.txt" />
		<copy file="myfile.txt" todir="build/newdir" />
		<copyfile src="test.java" dest="subdir/test.java"/>
		<copy todir="build/newdir"> 
			<fileset dir="src_dir"/>
		</copy>
		<copy todir="dest/dir"> 
		    <fileset dir="src_dir" excludes="**/*.java"/>
		</copy> 

 

 删除文件目录:

<delete file="/lib/aaa.jar"/>
<delete dir="lib"/>
<delete> 
	<fileset dir="." includes="**/*.bak"/>
</delete>

 移动文件目录:

<move todir="new/dir">
		<fileset dir="src/dir"> 
			<include name="**/*.jar"/> 
		    <exclude name="**/aaa.jar"/>
		</fileset>
</move> 

 重命名文件:

<rename src="foo.jar" dest="foo-${version}.jar"/>

 

简历临时文件:

<tempfile  property="temp. xml"  destDir="build"  suffix=".bak"/>

调用其他目录下的build.xml:

<ant antfile="aaa/bbb/build.xml" /> 

<ant antfile="bbb/build.xml" dir="aaa" />

<ant antfile="build.xml" dir="aaa/bbb" />

 

调用其他build.xml文件中的target:

<ant antfile="subproject/subbuild.xml" target="compile"/>

 

使用三方的一些task:首先的导入jar文件,然后通过taskdef的classname制定哪个类来处理

taskdef

    <taskdef name="if" classname="ise.antelope.tasks.IfTask" classpath="${global.dir}/../lib/atg-ant.jar" />

    <taskdef name="else" classname="ise.antelope.tasks.ElseTask" classpath="${global.dir}/../lib/atg-ant.jar" />

MacroDef——“宏”,在Ant中是非常实用的,它的作用相当于java里面的为防止代码重复而提取的公共方法。比如我现在需要将某几个目录分别进 行编译和打包,不使用MacroDef的情况下,如果有10个目录,那么我就至少要写10个类似 的<target></target>来做完对这10个目录的操作;但在使用MacroDef的情况下,你只用写一个通用 的<macrodef></macrodef>,再在其他地方调用它就可以了,既减少了代码量,又提高了工作效率。

<macrodef name="macrodef">
        <attribute name="target" />
        <sequential>
            <subant target="@{target}">
                <property name="skip.run.assembler" value="true" />
                <property name="cobertura.on" value="${cobertura.on}" />
                <property name="junit.fullsuite" value="${junit.fullsuite}" />
                <property name="sql.export.only" value="${sql.export.only}" />
                <filelist refid="module.files" />
            </subant>
        </sequential>
    </macrodef>

 

<filterset id="filterSet" begintoken="@" endtoken="@">
        <filter token="jdbc.url" value="${jdbc.url}" />
        <filter token="jdbc.pub.url" value="${jdbc.pub.url}" />
        <filter token="jdbc.staging.url" value="${jdbc.staging.url}" />

</filterset>

 

 

Condition:

 

		<target name="conditionTest">
			<condition property="term">
				<!--set the property value to true or false -->
				<!--istrue value="true" term=true-->
				<!--istrue value="false" term=false-->
				<!--isfalse value="true" term=false-->
				<!--isfalse value="false" term=true-->
				<isfalse value="true" />
			</condition>
			 <!-- 调用isTrue和isFalse这两个target-->  
			    <antcall target="isTrue">  
			    </antcall>  
			    <antcall target="isFalse">  
			    </antcall>  
		</target>
		<!-- if条件判断,成立执行-->  
		<target name="isTrue" if="term">  
		    <echo>is ture</echo>  
		</target>  
		<!-- unless条件判断,不成立时执行-->  
		<target name="isFalse" unless="term">  
		    <echo>is false</echo>  
		</target>  
             <condition property="term">
                <not>
                    <!--逻辑非,如果istrue 为true 那么 term 为false-->
                    <istrue value="true" />
                </not>
            </condition>

 

 <condition property="scondition">  
        <or>  
            <istrue value="true" />  
            <istrue value="false" />  
        </or>  
    </condition>  

 

		<!--在指定的类路径下是否有可用的资源-->
	  <available resource="TestTest.class">
	     <classpath refid="all.test.classes" />       
	  </available>

 

 <condition property="scondition">  
        <!--如果属性name不存在则返回false-->  
        <isset property="name"/>  
    </condition>  

 

	<condition property="scondition">
		<!--如果arg1的值与arg2的值相等返回true,否则为false-->
		<equals arg1="${prop1}" arg2="${prop2}"/>
	</condition>

 

判断操作系统 与 执行脚本 :

<os family="unix" />

<condition property="isWindows">
        <os family="windows" />
</condition>

 

如果操作系统是unix执行以下脚本

<exec executable="${app.path}/${app.name}/control/set_templates.sh" osfamily="unix" failonerror="yes" />

  • 大小: 23.4 KB
  • 大小: 29.3 KB
  • 大小: 35.8 KB
  • 大小: 32.1 KB
  • 大小: 35.5 KB
分享到:
评论

相关推荐

    高效开发ANT详解.

    《高效开发ANT详解》 Ant,全称为Apache Ant,是一款开源的Java项目构建工具,旨在提供一种跨平台、简单易用的方式来自动化构建过程,类似于Linux中的make工具。Ant以其强大的灵活性和可扩展性,克服了传统构建工具...

    java_ant详解.doc

    ### Java Ant 详解 #### 一、什么是Ant Ant是一个Java环境下的软件构建工具,它使用XML来描述构建过程,并且能够跨平台运行。Ant的主要功能包括编译源代码、复制文件、打包JAR文件等,它使得软件构建变得更加简单...

    ant 详解

    ### Ant 详解 #### Ant 的概念 Ant 是一个开源的 Java 工具,主要用于构建、测试和部署 Java 应用程序。与传统的 Make 工具相比,Ant 提供了更加强大且灵活的功能,尤其在跨平台方面表现优异。Ant 的核心特性在于...

    Ant详解.xmind

    ant使用详解,思维导图文件

    java_ant详解_例子

    Java Ant 是一个构建工具,主要用于自动化Java项目的构建过程,如编译、打包、测试和部署等任务。Ant基于XML来定义构建脚本,这使得它跨平台且易于理解和维护。在Java开发环境中,Ant扮演着与C/C++开发中的make类似...

    Apache ANT详解

    Apache ANT是一种广泛使用的Java构建工具,它以XML为基础,提供了高度可配置的构建脚本,使得开发者能够自动化处理Java项目的构建、编译、打包、测试等任务。ANT的名字源自建筑行业的术语“蚁工”,寓意其像蚂蚁一样...

    ant实用实例 详细解析ant的用法

    ### ant实用实例 详细解析ant的用法 #### 一、Ant简介与基本概念 Apache Ant 是一个Java环境下的开源项目构建工具,主要用于自动化构建、部署等任务。它使用XML来描述构建过程,并且提供了丰富的任务(task)集合,...

    ANT文件详解 ant介绍 ANT 命令

    ### ANT文件详解:深入理解ANT及其在项目构建中的应用 #### Ant的概念与起源 Ant,全称为Apache Ant,是一款开源的、跨平台的项目构建工具,最初由James Duncan Davidson开发,现归属于Apache软件基金会Jakarta...

    ant 配置文件集合

    这些文档,如“在Eclipse中集成Ant配置.doc”、“Ant的配置.doc”、“java_ant详解.doc”、“Ant配置实例.doc”和“ant的安装与配置.docx”,会进一步详细介绍如何编写Ant配置文件,解决实际问题,以及如何在开发...

    ant的api,安装操作说明文档,和个人编辑过的build文件

    3. `java_ant详解.doc`:这份文档可能包含了关于如何在Java项目中使用Ant的详细教程和示例。 通过学习和理解这些资源,你可以更高效地利用Ant进行项目构建,提高开发效率。无论是简单的Java应用还是复杂的构建流程...

    ANT-build详解

    《ANT-build详解》 ANT(Apache Ant)是一个Java平台上的自动化构建工具,它以其灵活性和可扩展性在软件开发过程中广泛使用。ANT的核心概念是基于XML的构建文件,这个文件定义了一系列任务(tasks),用于编译、...

    [北京圣思园Ant深入详解]_004.实现自定义Ant任务

    在Ant的世界里,自定义任务是扩展其功能的关键方式之一,允许开发者根据特定项目需求创建自己的构建步骤。Ant是Apache软件基金会的一个项目,它是一个基于Java的构建工具,广泛用于管理Java项目的构建、编译、测试和...

    ant

    而“Java_Ant详解(一).htm”、“ant中文教程.htm”、“ant.html”等在线资源,则提供了详细的教程和示例,便于深入学习。至于“ant3.rar”可能包含了Ant的某个版本或者其他扩展资源,而“ant实现JAVA项目的自动...

    Ant脚本详解说明

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

    Ant 详细教程,包含pdf和doc文件

    通过阅读《ant详解.doc》和《ant.pdf》,你可以更详细地了解这些概念和实践方法,从而提升Ant的使用技能。Ant不仅适合小型项目,也是大型项目构建的强大工具,它通过简单的XML语法让构建过程变得有序且易于维护。...

    [北京圣思园Ant深入详解]_003.Ant目标深度详解、使用Ant的各种任务

    Ant是Apache软件基金会的一个开源项目,它是一款强大的构建工具,主要用在Java应用程序的构建过程中。本篇将深入探讨Ant的目标(Target)和任务(Task),这是Ant构建过程中的两个核心概念。 首先,我们来理解Ant的...

Global site tag (gtag.js) - Google Analytics