`
wangxing0311
  • 浏览: 52839 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Ant学习笔记(二)

    博客分类:
  • Ant
阅读更多

4unless属性

该属性的功能与if属性的功能正好相反,它也用于验证指定的属性是否存在,若不存在,所在target将会被执行。

5description属性

该属性是关于target功能的简短描述和说明。

下面带领读者来看一个各属性综合使用的例子。修改E:"build.xml文件,修改后的内容如下:

<?xml version="1.0"?>
<project name="targetStudy">
       
<target name="targetA" if="ant.java.version">
               
<echo message="Java Version: ${ant.java.version}"/>
      
</target>
       
<target name="targetB" depends="targetA" unless="amigo">
              
<description>
                            a depend example!
              
</description>
              
<echo message="The base dir is: ${basedir}"/>
       
</target>
</project>

进入E盘后运行ant targetB,可看到如下图所示的运行结果:
   

读者分析结果后可以看到,我们运行的是名为targetBtarget,因该target依赖于targetA,所以targetA将首先被执行,同时因为系统安装了java环境,所以ant.java.version属性存在,执行了targetA这个target,输出信息:[echo] Java Version: 1.5targetA执行完毕后,接着执行targetB,因为amigo不存在,而unless属性是在不存在时进入所在的target的,由此可知targetB得以执行,输出信息:The base dir is: E:"

3. property元素

该元素可看作参量或者参数的定义,project的属性可以通过property元素来设定,也可在Ant之外设定。若要在外部引入某文件,例如build.properties文件,可以通过如下内容将其引入:<property file=” build.properties”/>

property元素可用作task的属性值。在task中是通过将属性名放在“${”和“}”之间,并放在task属性值的位置来实现的。

Ant提供了一些内置的属性,它能得到的系统属性的列表与Java文档中System.getPropertis()方法得到的属性一致,这些系统属性可参考sun网站的说明。

同时,Ant还提供了一些它自己的内置属性,如下:

basedirproject基目录的绝对路径,该属性在讲解project元素时有详细说明,不再赘述;

ant.filebuildfile的绝对路径,如上面的各例子中,ant.file的值为E:"build.xml

ant.versionAnt的版本,在本文中,值为1.7.0

ant.project.name:当前指定的project的名字,即前文说到的projectname属性的值;

ant.java.versionAnt检测到的JDK的版本,在上例运行结果中可看到为1.5

下面让读者来看一个property元素使用的简单例子。修改E:"build.xml文件,内容如下:

<?xml version="1.0"?>
<project name="propertyStudy" default="example">
<property name="name" value="amigo"/>
<property name="age" value="25"/>
<target name="example">
        
<echo message="name: ${name}, age: ${age}"/>
</target>
</project>

该例的运行结果如下图所示:
   

由此读者可以看出,通过如下两个语句:

<property name="name" value="amigo"/>

<property name="age" value="25"/>

我们设置了名为nameage的两个属性,这两个属性设置后,读者在下文中可以通过${name}${age}分别取得这两个属性的值。

三. Ant的常用任务

Ant工具中每一个任务封装了具体要执行的功能,是Ant工具的基本执行单位。在本小节中,主要引导读者来看下Ant的常用任务及其使用举例。

1.    copy任务

该任务主要用来对文件和目录的复制功能。举例如下:

Eg1.复制单个文件:<copy file="file.txt" tofile="copy.txt"/>

Eg2.对文件目录进行复制:

   <copy todir="../newdir/dest_dir">

            <fileset dir="src_dir"/>

 </copy>

Eg3. 将文件复制到另外的目录:

 <copy file="file.txt" todir="../other/dir"/>

2.     delete任务

对文件或目录进行删除,举例如下:

Eg1. 删除某个文件:<delete file="photo/amigo.jpg"/>

Eg2. 删除某个目录:<delete dir="photo"/>

Eg3. 删除所有的备份目录或空目录:

        <delete includeEmptyDirs="true">

               <fileset dir="." includes="**/*.bak"/>

        </delete>

3.    mkdir任务

创建目录。eg<mkdir dir="build"/>

4.    move任务

移动文件或目录,举例如下:

Eg1. 移动单个文件:<move file="fromfile" tofile=”tofile”/>

Eg2. 移动单个文件到另一个目录:<move file="fromfile" todir=”movedir”/>

Eg3. 移动某个目录到另一个目录:

        <move todir="newdir">

               <fileset dir="olddir"/>

        </move>

5.   echo任务

该任务的作用是根据日志或监控器的级别输出信息。它包括messagefileappendlevel四个属性,举例如下:

<echo message="Hello,Amigo" file="logs/system.log" append="true">

四.  利用Ant构建和部署Java工程

Ant可以代替使用javacjavajar等命令来执行java操作,从而达到轻松的构建和部署Java工程的目的。下面来看几个知识点。

1.     利用Antjavac任务来编译java程序

Antjavac任务用于实现编译Java程序的功能。下面来看一个简单的例子:

首先我们建立名为antstudyJava工程,建立src目录为源代码目录,在src目录下建立HelloWorld.java这个类文件。该类文件的内容如下:

public class HelloWorld {
    
public static void main(String[] args) {
       System.out.println("Hello,Amigo");
    }
}

   同时在antstudy工程的根目录下建立build.xml文件,在该文件中编译src目录下的java文件,并将编译后的class文件放入build/classes目录中,在编译前,需清除classes目录,该文件的内容如下:

<?xml version="1.0"?>
<project name="javacTest"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>

    运行该build.xml文件,可在工程中看到新增了build/classes目录,并在该目录中生成了编译后的HelloWorld.class文件。

2.   使用Antjava任务运行Java程序

Ant中可以使用java任务实现运行Java程序的功能。下面在1的例子中进行如下的修改,修改后的build.xml文件的内容如下:

<?xml version="1.0"?>
<project name="javaTest" 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="HelloWorld">
           
<classpath>
              
<pathelement path="build/classes"/>
           
</classpath>
       
</java>
    
</target>
</project>

    运行该build.xml文件,可在控制台看到HelloWorldmain方法的输出。

分享到:
评论

相关推荐

    ant_学习笔记

    ### ant学习笔记:深入了解ant构建工具 #### 引言 `ant`,作为一款源自动网络的学习笔记,主要探讨了Apache Ant这一强大的构建工具。Apache Ant是一款开源的、跨平台的构建工具,专为Java应用程序设计,旨在简化并...

    Ant 1.9.1 学习笔记

    Ant 1.9.1是Ant的一个版本,学习笔记通常记录了使用该工具的基本操作和配置方法。 ### Ant的下载和安装 要使用Ant,首先需要下载并安装。在Windows系统中,通常需要配置环境变量以便于命令行中使用Ant命令。ANT_...

    ant 学习 笔记 一个简单的java 编译部署实例

    根据提供的文件信息,这里将深入解析“ant学习笔记:一个简单的java编译部署实例”,涵盖标题、描述、标签以及部分内容中提及的关键知识点。 ### Apache Ant简介 Apache Ant是一款开源的Java环境下的自动化构建...

    ant个人学习笔记和简单示例

    总的来说,这个“ant个人学习笔记和简单示例”应该能帮助你掌握Ant的基本用法,理解构建过程的自动化,以及如何编写和维护自己的构建文件。通过学习和实践其中的示例,你将能够熟练地运用Ant来构建和管理Java项目,...

    Ant学习笔记

    在“Ant学习笔记”中,我们可以深入探讨以下几个关键知识点: 1. **Ant基本概念**:Ant是Apache软件基金会下的一个项目,主要由Java编写。它的核心类库`ant.jar`包含了所有执行构建任务所需的组件。XML文件,通常...

    Ant 学习笔记

    **Ant学习笔记** Apache Ant,一个Java库和命令行工具,其任务是驱动构建过程。它是Java世界中广泛使用的构建工具,类似于Unix世界的Make。Ant以其XML格式的构建文件(通常命名为`build.xml`)而闻名,这个文件包含...

    Ant构建工具学习笔记

    《Ant构建工具学习指南》 Ant,作为Java领域的一个强大构建工具,它的主要作用在于将复杂的项目构建过程规范化、自动化,使得开发者能够更专注于代码的编写而非构建流程。本文将深入探讨Ant的基本概念、安装配置、...

    ant的学习笔记.doc

    ### ant的学习笔记知识点详解 #### 一、Ant的作用与特性 Ant是一款强大的自动化构建工具,主要应用于Java项目,能够高效地处理项目的编译、打包、测试等任务。它采用XML格式编写构建脚本,这使得Ant具有良好的跨...

    Ant打包编译部署工具学习笔记2(附件中含有测试项目)

    在"Ant打包编译部署工具学习笔记2"中,我们可以预期博主分享了关于如何利用Ant进行更复杂的构建操作,例如集成测试、优化和打包。这可能包括如何配置build.xml文件,添加自定义任务,以及如何处理依赖关系。由于没有...

    经典ant笔记.doc

    ### 经典Ant笔记知识点详解 #### 一、Ant简介及功能 - **定义与作用:** - Ant是一款开源的Java平台上的自动化构建工具,主要用于简化软件项目的构建过程,支持多种任务,如编译Java源代码、运行Java程序、复制...

    ant 学习笔记

    NULL 博文链接:https://worktianqi.iteye.com/blog/2162932

    react 学习笔记

    React 学习笔记 React 是一个流行的前端框架,用于构建用户界面。学习 React 需要掌握其核心概念,包括组件生命周期、状态管理、事件处理等。本节笔记将记录 React 学习过程中的关键知识点。 一、React 组件生命...

    Extjs 5 学习笔记

    ### Extjs 5 学习笔记之 SenchaCmd 深入解析 #### 一、SenchaCmd 的简介 SenchaCmd 是一个跨平台的命令行工具,它为基于 ExtJS 和 Sencha Touch 应用程序的开发周期提供了全面的支持。从创建应用程序的基础结构到...

Global site tag (gtag.js) - Google Analytics