公司有很多应用,刚开始开发的时候,都是把其他应用的build.xml复制过来,然后自己小改下就ok了,心里一点都不踏实,没有系统仔细的学习下,现写了两个小例子,应该还算比较全的,算巩固下ANT的知识点。
如果要打jar包的话,一般情况下,将ant编译后的文件放在一个目录例如bin目录下,应用的jar包放在ant编译的lib目录下,把bin目录下的文件全部打成一个jar包,lib下的jar包直接放在要使用ant打的jar包的应用中即可。
目录结构图如下:
例子1:
build.xml:
<?xml version="1.0" encoding="GBK"?> <project name="TestAnt" default="build" basedir="."> <!--1、设置基本属性,设置基本路径,与eclipse的编译路径classes,bin无关--> <property name="src" value="src" /> <property name="lib" value="lib" /> <!--2、设置其他应用的路径(编译依赖工程)--> <property name="otherProject" value="../otherProject" ></property> <!--3、使用ant编译后存放编译文件的路径--> <property name="ooo" value="ooo" /> <!--4、使用ant编译依赖的编译环境--> <path id="classpath"> <pathelement location="bin" /> <fileset dir="${lib}" includes="*.jar" /> </path> <!--5、编译提示 --> <target name="usage"> <property name="Name" value="TestAnt" ></property> <property name="date" value="2011-08-11 22:09:30" ></property> <echo message="----------------------- ${Name} [${date}] -----------------------" /> </target> <!--6、创建使用ant编译存放编译文件的路径,先清除路径--> <target name="clean"> <delete dir="${ooo}"></delete> </target> <target name="init"> <mkdir dir="${ooo}" /> <mkdir dir="${ooo}/lib"/> </target> <!--7、使用ant编译,并将编译的class文件放在 ${ooo}目录下 --> <target name="compile"> <javac srcdir="${src}" destdir="${ooo}" debug="true" includes="**" > <classpath refid="classpath" /> </javac> </target> <!--8、将scr下的非java类复制到${ooo}路径下(注意路径的一致性!)--> <target name="copy"> <copy todir="${ooo}"> <fileset dir="${src}"> <include name="**"/> <exclude name="**.properties" /> <exclude name="**/*.properties" /> </fileset> </copy> <copy todir="${ooo}/lib" > <fileset dir="${lib}" > <include name="*.jar" /> </fileset> </copy> </target> <!--创建文件--> <touch file="${classes.dir}/log/settle.log" ></touch> <!--打包--> <target name="init"> <jar destfile="${lib.dir}/stl-core.jar"> <fileset dir="${frametemp}"> <include name="**" /> </fileset> </jar> </target> <!-- 打包 --> <target name="pack" depends="compile" description="make .jar file"> <mkdir dir="${dist.dir}" /> <jar destfile="${dist.dir}/stl-core.jar" basedir="${classes.dir}"> </jar> </target> <!--9、将ant编译的文件(${ooo}下的文件)打成jar包,可以有选择路径--> <target name="build.jar"> <jar jarfile="${ooo}/xxx.jar" basedir="${ooo}" includes="**" /> </target> <!--ant 编译执行 build 由 default="build" 决定 --> <!--执行build 依赖 usage,clean,init,compile,copy,build.jar,按顺序执行--> <target name="build" depends="usage,clean,init,compile,copy,build.jar" > </target> </project>
例子2:
<?xml version="1.0" encoding="GBK"?> <project name="pub_busi_plat" default="build" basedir="."> <property name="src" value="src" ></property> <property name="lib" value="WebRoot/WEB-INF/lib" ></property> <property name="script" value="script" ></property> <property name="config" value="config" ></property> <property name="classes" value=".build" ></property> <path id="Test_ouyangping.classpath" > <pathelement location="WebRoot/WEB-INF/classes" /> <fileset dir="WebRoot/WEB-INF/lib" includes="*.jar" /> </path> <target name="clean"> <delete dir="${classes}" ></delete> </target> <target name="init"> <mkdir dir="${classes}"/> <mkdir dir="${classes}/bin"/> <mkdir dir="${classes}/lib"/> <mkdir dir="${classes}/script"/> <mkdir dir="${classes}/log"/> <touch file="${classes}/log/system.log" > </touch> <!-- 创建文件 --> </target> <target name="compile"> <javac srcdir="${src}" destdir="${classes}/bin" debug="no" > <classpath refid="Test_ouyangping.classpath" ></classpath> </javac> </target> <target name="copy"> <copy todir="${classes}/bin" > <fileset dir="${src}" > <include name="**/*.xml" /> </fileset> <fileset dir="${config}" > <include name="**/*" /> </fileset> </copy> <copy todir="${classes}/lib" > <fileset dir="${lib}"> <include name="*.jar" /> </fileset> </copy> <copy todir="${classes}/script"> <fileset dir="${script}" > <include name="*" /> </fileset> </copy> </target> <target name="build" depends="clean,init,compile,copy" ></target> </project>
<replace dir="${classes.home}/bin/com/umpay/tsm/db/sql" includes="*.xml" encoding="UTF-8">
<replacefilter token="@SCHEMA@" value="${schema}"/>
</replace> 可替换文本
javac指定jdk版本:http://neoman.iteye.com/blog/571806
为 javac 任务指定target属性,取值为:1.3、1.4、1.5 即自己需要编译源码的版本
#自动执行测试代码,并输出测试代码报告:
<target name="junitTest" depends="build"> <junit printsummary="on" fork="true" showoutput="true"> <classpath> <!-- <fileset dir="lib" includes="**/*.jar"/> <pathelement path="${junit.classpath}"/> --> <pathelement location="bin" /> <fileset dir="lib" includes="*.jar" /> </classpath> <formatter type="xml" /> <batchtest todir="${testResut}"> <fileset dir="${test}"> <include name="**/*.*" /> </fileset> </batchtest> </junit> <junitreport todir="${testResut}"> <!-- <fileset dir="${test}"> <include name="**/*,*" /> </fileset> --> <fileset dir="${testResut}"> <include name="TEST-*.xml"/> </fileset> <report format="frames" todir="${testResut}" /> </junitreport> </target>
相关推荐
Ant是Apache软件基金会的一个开放源码项目,是一个基于Java的构建工具,它的设计...Ant的简单性和可扩展性使其成为Java开发中的一个强大工具,无论你是初次接触还是希望替换现有的构建系统,Ant都是值得考虑的选择。
"ant+初步.doc"可能会涵盖Ant的安装、环境配置以及第一个简单的构建文件的创建。一个基本的构建文件会包含项目信息、属性定义、任务声明和目标设定。例如,你可以定义一个目标用于清理构建产物,另一个目标用于编译...
安装Ant非常简单,通常包括下载`.zip`包,将其解压到合适的目录,并设置环境变量。`ANT_HOME`应指向Ant的安装目录,而`PATH`环境变量需包含`ANT_HOME/bin`子目录,这样在命令行中就可以直接运行`ant`命令了。如果还...
ANT的简单使用包括创建build.xml文件和执行ANT命令两个步骤。 1. 在F盘根目录下新建一个xx.txt文件,内容随意。 2. 在F盘根目录下新建一个build.xml文件,内容如下: ` 测试脚本" default="copyfile" basedir="."> ...
使用简单--与ant的兄弟make比起来 语法清晰--同样是和make相比 功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有多少功能。当你自己开发一些ant插件的时候,你会发现它更多的功能。
Ant 是一个构建工具,它可以帮助我们将项目开发过程中需要完成的各种步骤组织起来,通过一个简易的方式来构建整个项目。Ant 究竟能做什么呢?这取决于 Ant 的任务(Task),Ant 有哪些任务,就能完成哪些工作! Ant...
在实际使用Ant时,我们首先需要在项目根目录下创建`build.xml`文件,并定义所需的任务和目标。例如,一个简单的构建文件可能包含以下内容: ```xml ${build.dir}"/> ${build.dir}/classes"/> ${...
在Ant构建过程中,JavaScript脚本方法的使用是一个强大的工具,它允许开发者自定义构建过程,实现更复杂的逻辑和任务自动化。Ant是一个Java库和命令行工具,它的设计目标是驱动软件构建过程,尤其是在Java项目中。这...
在这个最简单的实例中,我们将深入探讨如何设置和使用Ant。 首先,我们需要理解Ant的基本结构。Ant的核心概念是任务(tasks),它们是执行特定操作的单元,比如`javac`任务用于编译Java源代码,`jar`任务用于创建...
### ant使用手册ANT使用指南 #### 一、引言 Ant是一种流行的开源构建工具,用于自动化软件项目的构建过程。尤其适用于Java项目,但它也可以用于非Java项目。由于Ant的灵活性和易用性,它在Java开发者社区中迅速...
以上示例展示了如何使用 Ant 来自动化一个简单的 Java 应用程序构建流程。从清理目录、编译代码、打包 JAR 文件到最后部署至服务器,整个过程都可通过一个简单的 XML 文件来定义和执行。 #### 结论 Apache Ant 是...
以下是一个简单的Ant脚本示例: ```xml ${build.dir}"/> ${build.dir}/classes"/> ${src.dir}" destdir="${build.dir}/classes"/> ``` 此脚本定义了两个目标:`clean`用于删除构建目录,`compile...
### ANT使用指南详解 #### 一、导言 Apache Ant 是一款开源的Java构建工具,类似于传统的Unix Make工具。Ant采用XML格式来定义构建过程,提供了丰富的任务(task)集合,适用于自动化编译、测试和部署Java应用程序。...
虽然现代Java开发中,如Maven和Gradle等构建工具的流行度已经超越了Ant,但Ant由于其历史的悠久和简单易学的特点,仍然在一些项目和团队中保持着活跃地位。因此,掌握Ant对Java开发者来说,仍然是一个十分有帮助的...
例如,一个简单的Ant构建文件可能包含如下目标: 1. `usage`: 显示构建脚本的使用帮助。 2. `clean`: 清理之前的构建结果,如删除编译产生的临时文件和生成的JAR包。 3. `javadoc`: 生成项目API文档。 4. `build`: ...
- **属性使用**:学习如何定义和使用Ant属性,以便在构建文件中传递参数。 - **文件集(Filesets)**:掌握如何选择和操作一组文件,例如通过元素指定需要编译的源代码目录。 - **条件语句**:了解如何根据条件执行...
通过以上步骤,您可以成功安装配置Ant,并通过一个简单的例子理解如何使用Ant进行构建和部署Java程序。Ant的强大之处在于它不仅可以处理简单的构建任务,还可以通过自定义任务支持更复杂的场景。希望这篇教程能够...
### Ant使用指南详解 #### 一、Ant简介与特点 **Apache Ant** 是一款流行的开源构建工具,专门设计用于处理Java项目的构建需求。它由James Duncan Davidson创建,并以“Another Neat Tool”(另一个整洁的工具)的...