`

第一个Ant脚本

    博客分类:
  • Ant
ant 
阅读更多

目的:

  • 编写类文件
  • 编译源文件,将生成的class文件放在指定的位置
  • 将它打成jar,并放在指定的位置
  • 运行这个jar

编写源文件

Test.java:

package com.ant.test;

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class Test {
	public String getTime() {
		SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd HH:MM:ss");
		Calendar c = Calendar.getInstance();
		return format.format(c.getTime());
	}
}


这个类有一个方法,该方法返回当前系统的日期和时间。

 

 

测试类,

HelloWorldAnt.java:

package com.ant.test;

public class HelloWorldAnt {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		System.out.println("Hello World Ant.");
		String time = new Test().getTime();
		System.out.println("Time is :" + time);
	}

}
在project目录下新建build.xml文件,文件内容:
<?xml version="1.0" encoding="utf-8"?>
<project name="HelloWorldAnt" default="run" basedir=".">
	<property name="src.dir" value="src"></property>
	<property name="dest.dir" value="dest"></property>
	<property name="classes.dir" value="${dest.dir}/classes"></property>
	<property name="jarfile" value="${dest.dir}/helloworldAnt.jar"></property>

	<target name="init">
		<mkdir dir="${classes.dir}"></mkdir>
		<echo message="Create dir ${dest.dir}."></echo>
	</target>

	<target name="compile" depends="init">
		<javac srcdir="${src.dir}" destdir="${classes.dir}"></javac>
		<echo>Compile source code.</echo>
	</target>

	<target name="jar" depends="compile">
		<jar jarfile="${jarfile}" basedir="${classes.dir}"  includes="**/*.class"></jar>
		<echo>Create jar file.</echo>
	</target>

	<target name="run" depends="jar">
		<java classpath="${jarfile}" classname="com.ant.test.HelloWorldAnt"></java>
		<echo>Run jar file.</echo>
	</target>

	<target name="clean">
		<delete dir="${dest.dir}"></delete>
		<delete file="${jarfile}"></delete>
	</target>

</project>

 

Ok,接下来就是执行Ant任务,完成我们的目标。

 

将build.xml拖放到Ant视图。

 

然后执行run[default],控制台得到如下输出:

Buildfile: D:\qincidong\workspace\ant\build.xml
init:
    [mkdir] Created dir: D:\qincidong\workspace\ant\dest\classes
     [echo] Create dir dest.
compile:
    [javac] Compiling 2 source files to D:\qincidong\workspace\ant\dest\classes
     [echo] Compile source code.
jar:
      [jar] Building jar: D:\qincidong\workspace\ant\dest\helloworldAnt.jar
     [echo] Create jar file.
run:
     [java] Hello World Ant.
     [java] Time is :2013-30-21 11:06:16
     [echo] Run jar file.
BUILD SUCCESSFUL
Total time: 1 second

 

上面的
[java] Hello World Ant. 
[java] Time is :2013-30-21 11:06:16
就是程序运行后的结果。

OK,下面对上面的配置文件做一些解释。
project元素:
<project>是Ant脚本的根元素,Ant的所有内容都放在这对标签之间。
name是你给它取的名字,一般与工程名相同。
default:默认要执行的任务[Target],如上面的你不指定任务名称时,默认执行run这个Target.

这是在命令行执行的结果,没有指定执行的任务名称,从执行结果我们知道,执行的是run这个Target。
basedir:工作根目录,.表示当前目录。

property元素:
<property>:就像程序中的变量一样,通过name和value属性指定,在其他地方用${变量名}引用。

target元素:
<target>:我们要做的每一件事情都可以写成一个Target,例如上面init,compile,jar,run,clean总共5个任务。
name:任务的名称
depends:依赖的任务,如上面的compile任务依赖init,即先执行init,再执行compile。

init target:
<target name="init">
<mkdir dir="${classes.dir}"></mkdir>
<echo message="Create dir ${dest.dir}."></echo>
</target>
这个任务就是创建一个文件夹,文件夹的名字是${classes.dir}代笔的文件夹,即projectName/dest/classes。
mkdir标签用于创建一个文件夹,dir指定要创建的文件夹。
echo:输出一些信息。

compile target:
<target name="compile" depends="init">
<javac srcdir="${src.dir}" destdir="${classes.dir}"></javac>
<echo>Compile source code.</echo>
</target>
这个任务就是编译java源文件,它依赖init任务,即创建好编译生成的.class文件的位置后,编译源文件。
使用javac命令编译,srcdir指定源文件的位置,destdir指定生成的class文件的位置。

jar target:
<target name="jar" depends="compile">
<jar jarfile="${jarfile}" basedir="${classes.dir}" includes="**/*.class"></jar>
<echo>Create jar file.</echo>
</target>
在编译生成.class文件后,使用jar命令打包成jar文件。
jarfile:指定生成的jar文件
basedir:指定class文件的位置
includes:指定打包到jar的文件。
**/*.class:所有目录下的.class文件。

run target:
<target name="run" depends="jar">
<java classpath="${jarfile}" classname="com.ant.test.HelloWorldAnt"></java>
<echo>Run jar file.</echo>
</target>
在打包成jar文件后,使用java命令执行这个jar文件。
classpath:指定jar的位置
classname:指定主程序。

clean target:
<target name="clean">
<delete dir="${dest.dir}"></delete>
<delete file="${jarfile}"></delete>
</target>
删除${dest.dir}指定的文件夹和${jarfile}指定的文件。
实际上<delete file="${jarfile}"></delete>这句不必要,因为生成的jar文件就在${dest.dir}文件夹中。
分享到:
评论

相关推荐

    ant脚本资料ant

    Ant是Apache软件基金会下的一个项目,它是一款强大的构建工具,主要用在Java环境中,用于自动化构建、测试和部署Java应用程序。Ant使用XML来描述构建过程和依赖关系,使得构建过程可配置且易于跨平台移植。 1. **...

    ant脚本通用模板 ant脚本通用模板

    - **`default`**: 指定默认执行的目标(target),如果没有指定,则会执行第一个定义的目标。 - **`basedir`**: 表示项目的基目录,默认为当前目录。 ##### 2. `&lt;property&gt;`元素 用于定义变量,这些变量可以在整个...

    Ant 脚本详解

    Ant是Apache软件基金会下的一个Java项目,它是一个构建工具,主要用于自动化Java应用程序的构建过程,如编译、...在学习Ant的过程中,实践是关键,尝试编写自己的构建脚本并理解其工作原理,是成为Ant专家的第一步。

    ant build脚本代码

    在博客文章《http://blog.csdn.net/lsmfeixiang/article/details/49681583》中,作者详细解释了如何编写Ant脚本来实现自动化多渠道打包。文章中可能包括了如何定义属性(property)来存储渠道标识、如何使用条件...

    ant脚本,打可运行的jar包,并导出第三方jar包到指定目录

    标题中提到的"ant脚本,打可运行的jar包"是指使用Ant来创建一个包含所有必需依赖的可执行JAR文件。这样的JAR文件通常被称为"fat JAR"或"uber JAR",因为它包含了项目本身的所有类以及任何第三方库,使得可以直接通过...

    Java Development with Ant.pdf

    创建第一个Ant脚本通常从编写一个简单的`build.xml`文件开始,该文件定义了构建的目标和任务。例如,可以编写一个任务来编译Java源代码。 **理解Ant数据类型与属性** Ant提供了多种内置的数据类型,如`Fileset`、`...

    ant使用教程

    #### 三、第一个Ant脚本示例 1. **目标** - 编写并编译一个简单的Java程序(如`HelloWorld.java`)。 - 将编译后的类文件打包成`.jar`文件。 - 将打包好的文件放置到指定位置。 - 运行程序。 2. **创建程序** ...

    ant入门教程-通俗易懂

    ant的简单入门教程 1、ant介绍;2、ant安装;3、第一个ant脚本;4、整合ant;5、ant进阶;6、常用task;7、控制流程;8、实例分析;9、如何继续学习;10、ant使用cvs实例;11、Q&A

    ant 第一个例子

    下面,我们将详细探讨Ant的第一个例子及其相关知识点。 1. **Ant的基本概念**: Ant是一个Java库和命令行工具,其设计目标是驱动构建过程。它的主要任务包括编译、打包、测试和部署Java应用。与Make类似,但Ant是...

    Powershell(脚本) Ant(编译)实现一键打包

    脚本将遍历这个数组,每次迭代都将当前市场的标识传递给第一步中设计的方法,从而实现对不同市场的分别编译和打包。完成编译后,还需进行应用签名,以确保应用的完整性和安全性。 #### 技术要点详述 - **Ant简介**...

    自动化测试系列一 ANT

    在这一系列的第一部分,我们将了解如何利用ANT进行自动化测试,并查看具体的ANT脚本实例。 【知识点详述】 1. **ANT简介**:ANT是一个基于Java的项目管理工具,它的设计目标是简化软件项目的构建过程,通过XML配置...

    ant入门资料.快速上手

    #### 三、第一个Ant脚本 **3.1 使用Ant来达成目的,完成一件事情的实例** 假设我们需要编译一个Java项目,可以通过以下步骤实现: 1. **创建`build.xml`文件**: ```xml ``` 2. **执行构建**:在...

    Java 代码调用ANT

    1. **初始化 Project 对象**:创建 `Project` 实例是使用 Ant API 的第一步。`Project` 类代表了一个构建项目,并负责管理构建任务。 2. **添加 Build Listener**:为了能够记录构建过程中的日志信息,需要为项目...

    ant中文手册

    目录: 1. Ant介绍... 2. Ant 安装... 3. 第一个Ant脚本... 4. 整合ant 5. Ant进阶... 6. Ant常用task. 7. 在ant中控制流程(if else ) 8. 实例分析: 9. 如何继续学习...

    ant lib ant 所有lib包

    Ant不仅仅是一个简单的命令行工具,它依赖于一系列的库文件,包括Apache Commons库、JAR文件和其他第三方库,这些库提供了各种功能,如文件操作、网络通信等。 "ant-contrib-1.0b2"是Ant的一个扩展库,名为Ant ...

    Ant使用详细介绍(中文版)

    有没有注意到这个文件,跟第一个文件的变化?没错,任务的 file 属性变了,现在是*.txt,可能你已经意识到,这个的意思是拷贝 d:盘下所有的以 txt 为扩展名的文件到 c:/temp 目录中。完全正确! Ant 任务 Ant 有很...

    apache ant 1.9.4 三个版本

    Apache Ant 是一个由Apache软件基金会开发的Java库和命令行工具,它的主要任务是驱动构建过程。Ant 使用XML来描述构建文件,其中包含了构建过程的步骤和依赖关系,使得构建过程自动化、可重复且易于维护。Apache Ant...

    ant.jar下载

    开发者在自己的项目中引入这个JAR文件,就可以在没有安装全局Ant的情况下运行Ant脚本。使用命令行,可以通过`java -jar ant.jar`的方式启动Ant,配合构建文件执行相应的构建任务。 总结来说,Apache Ant是Java开发...

    ant多渠道打包配置示例

    在`ant脚本`中,通常会包含多个目标(target),每个目标是一系列任务的集合。例如,一个`clean`目标用于清理编译产生的临时文件,而`compile`目标则负责将源代码编译成类文件。`dist`目标则可能用于打包最终的应用...

    ant第三部分源码

    Ant是Apache软件基金会的一个开源项目,它是一款Java构建工具,主要负责自动化构建Java项目,如编译、打包、测试和部署等任务。本部分将深入探讨Ant的源码,了解其内部工作原理和设计思想。 Ant的核心是基于XML的...

Global site tag (gtag.js) - Google Analytics