目的:
- 编写类文件
- 编译源文件,将生成的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是Apache软件基金会下的一个项目,它是一款强大的构建工具,主要用在Java环境中,用于自动化构建、测试和部署Java应用程序。Ant使用XML来描述构建过程和依赖关系,使得构建过程可配置且易于跨平台移植。 1. **...
- **`default`**: 指定默认执行的目标(target),如果没有指定,则会执行第一个定义的目标。 - **`basedir`**: 表示项目的基目录,默认为当前目录。 ##### 2. `<property>`元素 用于定义变量,这些变量可以在整个...
Ant是Apache软件基金会下的一个Java项目,它是一个构建工具,主要用于自动化Java应用程序的构建过程,如编译、...在学习Ant的过程中,实践是关键,尝试编写自己的构建脚本并理解其工作原理,是成为Ant专家的第一步。
在博客文章《http://blog.csdn.net/lsmfeixiang/article/details/49681583》中,作者详细解释了如何编写Ant脚本来实现自动化多渠道打包。文章中可能包括了如何定义属性(property)来存储渠道标识、如何使用条件...
标题中提到的"ant脚本,打可运行的jar包"是指使用Ant来创建一个包含所有必需依赖的可执行JAR文件。这样的JAR文件通常被称为"fat JAR"或"uber JAR",因为它包含了项目本身的所有类以及任何第三方库,使得可以直接通过...
创建第一个Ant脚本通常从编写一个简单的`build.xml`文件开始,该文件定义了构建的目标和任务。例如,可以编写一个任务来编译Java源代码。 **理解Ant数据类型与属性** Ant提供了多种内置的数据类型,如`Fileset`、`...
#### 三、第一个Ant脚本示例 1. **目标** - 编写并编译一个简单的Java程序(如`HelloWorld.java`)。 - 将编译后的类文件打包成`.jar`文件。 - 将打包好的文件放置到指定位置。 - 运行程序。 2. **创建程序** ...
ant的简单入门教程 1、ant介绍;2、ant安装;3、第一个ant脚本;4、整合ant;5、ant进阶;6、常用task;7、控制流程;8、实例分析;9、如何继续学习;10、ant使用cvs实例;11、Q&A
下面,我们将详细探讨Ant的第一个例子及其相关知识点。 1. **Ant的基本概念**: Ant是一个Java库和命令行工具,其设计目标是驱动构建过程。它的主要任务包括编译、打包、测试和部署Java应用。与Make类似,但Ant是...
脚本将遍历这个数组,每次迭代都将当前市场的标识传递给第一步中设计的方法,从而实现对不同市场的分别编译和打包。完成编译后,还需进行应用签名,以确保应用的完整性和安全性。 #### 技术要点详述 - **Ant简介**...
在这一系列的第一部分,我们将了解如何利用ANT进行自动化测试,并查看具体的ANT脚本实例。 【知识点详述】 1. **ANT简介**:ANT是一个基于Java的项目管理工具,它的设计目标是简化软件项目的构建过程,通过XML配置...
#### 三、第一个Ant脚本 **3.1 使用Ant来达成目的,完成一件事情的实例** 假设我们需要编译一个Java项目,可以通过以下步骤实现: 1. **创建`build.xml`文件**: ```xml ``` 2. **执行构建**:在...
1. **初始化 Project 对象**:创建 `Project` 实例是使用 Ant API 的第一步。`Project` 类代表了一个构建项目,并负责管理构建任务。 2. **添加 Build Listener**:为了能够记录构建过程中的日志信息,需要为项目...
目录: 1. Ant介绍... 2. Ant 安装... 3. 第一个Ant脚本... 4. 整合ant 5. Ant进阶... 6. Ant常用task. 7. 在ant中控制流程(if else ) 8. 实例分析: 9. 如何继续学习...
Ant不仅仅是一个简单的命令行工具,它依赖于一系列的库文件,包括Apache Commons库、JAR文件和其他第三方库,这些库提供了各种功能,如文件操作、网络通信等。 "ant-contrib-1.0b2"是Ant的一个扩展库,名为Ant ...
有没有注意到这个文件,跟第一个文件的变化?没错,任务的 file 属性变了,现在是*.txt,可能你已经意识到,这个的意思是拷贝 d:盘下所有的以 txt 为扩展名的文件到 c:/temp 目录中。完全正确! Ant 任务 Ant 有很...
Apache Ant 是一个由Apache软件基金会开发的Java库和命令行工具,它的主要任务是驱动构建过程。Ant 使用XML来描述构建文件,其中包含了构建过程的步骤和依赖关系,使得构建过程自动化、可重复且易于维护。Apache Ant...
开发者在自己的项目中引入这个JAR文件,就可以在没有安装全局Ant的情况下运行Ant脚本。使用命令行,可以通过`java -jar ant.jar`的方式启动Ant,配合构建文件执行相应的构建任务。 总结来说,Apache Ant是Java开发...
在`ant脚本`中,通常会包含多个目标(target),每个目标是一系列任务的集合。例如,一个`clean`目标用于清理编译产生的临时文件,而`compile`目标则负责将源代码编译成类文件。`dist`目标则可能用于打包最终的应用...
Ant是Apache软件基金会的一个开源项目,它是一款Java构建工具,主要负责自动化构建Java项目,如编译、打包、测试和部署等任务。本部分将深入探讨Ant的源码,了解其内部工作原理和设计思想。 Ant的核心是基于XML的...