Apache Ant简介
简单的讲,Ant是一个命令行工具,可以用来编译java文件,执行java程序,生成jar文件,执行测试等。
具体参见http://ant.apache.org/
1.Ant的配置
(1)下载Ant
http://ant.apache.org/bindownload.cgi
下载解压后放在某路径下,例如:C:\apache-ant-1.8.2
(2)配置环境变量
追加系统环境变量:“ANT_HOME”,值:“C:\apache-ant-1.8.2”
在系统环境变量“Path”里追加“C:\apache-ant-1.8.2\bin”
(3)验证配置是否正确
在命令行输入“ant -version”
如果显示“Apache Ant(TM) version 1.8.2 compiled on December 20 2010”,说明正确
2.创建build.xml文件
用XML编写,至少包含一个project和一个target.
以下面这个build.xml为例说明
主要任务:
(1)正式source文件(src目录下)和Junit测试(test目录下)文件可以分别编译。
(2)生成jar文件,并且不包含测试文件。
(3)通过ant执行Junit测试,生成测试报告。
编写思路:
(1)根据上述任务,至少需要编写4个target
target1:compile,编译正式source文件
target2:testcomplile,编译test文件
target3:make-jar,生成jar文件
target4:runtests,执行junit测试
(2)辅助target
target5:JUNIT,执行Junit测试需要此target支持
target6:apidocs,生成javaDoc
target7:rmi-compile,编译RMI相关文件(工程中涉及到了RMI通信内容)。
特别说明:test目录下的测试文件与src的source文件是一一对应的,包结构完全一致。
主要目录结构
myproject
├─bin
├─config
├─image
├─lib
├─log
├─src
│ └─AAA
│ └─BBB
│ └─CCC
└─test
└─AAA
└─BBB
└─CCC
----------------------------------------file start-------------------------------------------
<?xml version="1.0" encoding="Shift_JIS"?>
<!-- project tag
name :工程名字
default:默认执行的target
basedir:ant执行的根目录-->
<project name="myproject" default="runtests" basedir=".">
<!-- source路径 -->
<property name="src.dir" value="src" />
<!-- 编译后class路径 -->
<property name="build.dir" value="classes" />
<!-- JavaDoc路径 -->
<property name="build.apidocs" value="${build.dir}/doc" />
<!-- 测试source路径
test.dir : JUnit执行路径
-->
<property name="testSrc.dir" value="test" />
<!-- test报告路径 -->
<property name="reports.dir" value="./doc/report" />
<!-- test结果统计路径 -->
<property name="correctreports.dir" value="${reports.dir}/html" />
<!-- target tag
name :target名字
depends :依赖target,先执行被依赖的target.
description:target描述
-->
<target name="JUNIT">
<available property="junit.present" classname="junit.framework.TestCase" />
</target>
<target name="compile" depends="JUNIT">
<mkdir dir="${build.dir}"/>
<depend srcdir="${src.dir}" destdir="${build.classes}"/>
<javac srcdir="${src.dir}" destdir="${build.classes}">
<classpath>
<pathelement path="${build.classes}"/>
<pathelement path="${java.class.path}/"/>
</classpath>
<include name="**/*.java"/>
</javac>
</target>
<target name="testcompile" depends="compile">
<depend srcdir="${testSrc.dir}" destdir="${build.classes}"/>
<!-- test class文件与正式class文件,输出到同一目录下
也就是说正式source和测试source的原文件(java文件)不同目录,但编译后的class文件同目录。
-->
<javac srcdir="${testSrc.dir}" destdir="${build.classes}" fork="true" memoryMaximumSize="512m">
<compilerarg value="-Xlint:unchecked"/>
<classpath>
<pathelement path="${build.classes}"/>
<pathelement path="${java.class.path}/"/>
<fileset dir="lib">
<include name="*.jar"/>
</fileset>
</classpath>
<include name="**/*.java"/>
</javac>
</target>
<target name="rmi-compile" depends="compile">
<rmic base="${build.classes}" verify="true">
<classpath>
<pathelement path="${build.classes}"/>
<pathelement path="${java.class.path}/"/>
</classpath>
<include name="**/*.class"/>
<exclude name="**/test/*.class"/>
</rmic>
</target>
<target name="runtests" depends="testcompile">
<delete>
<fileset dir="${reports.dir}" includes="**/*" />
</delete>
<mkdir dir="${reports.dir}"/>
<junit printsummary="on" failureProperty="fail">
<classpath>
<pathelement location="lib/***.jar" />
<pathelement location="lib/***.jar" />
<pathelement path="${build.classes}"/>
<pathelement path="${java.class.path}/"/>
</classpath>
<formatter type="xml"/>
<batchtest fork="yes" todir="${reports.dir}">
<fileset dir="${src.dir}">
<!-- 只执行test CLASS -->
<include name="${test.dir}**/*Test.java" />
</fileset>
</batchtest>
</junit>
<junitreport todir="${reports.dir}">
<fileset dir="${reports.dir}">
<include name="TEST-*.xml"/>
</fileset>
<report format="frames" todir="${correctreports.dir}"/>
</junitreport>
</target>
<!-- JavaDoc生成 -->
<target name="apidocs" depends="compile" description="JavaDoc生成">
<javadoc sourcepath="${src.dir}" destdir="${build.apidocs}"
packagenames="AAA.BBB.CCC.*"
author="true"
version="true"
notree="true"
nonavbar="true"
noindex="true"
windowtitle="MyProject API"
doctitle="Regulation"
public="true"
/>
</target>
<!-- Jar生成 -->
<target name="make-jar" depends="rmi-compile" description="Jar生成">
<delete file="myproject.jar"/>
<jar jarfile="myproject.jar" manifest="MANIFEST.MF">
<fileset dir="classes">
<!--除去test文件-->
<exclude name="**/test/"/>
</fileset>
</jar>
</target>
</project>
--------------------------------------file end----------------------------------------------
3.执行build.xml
将build.xml放到myproject工程的根目录下。
控制台切换到myproject工程的根目录“C:\myproject”:
(1)编译正式source
C:\myproject>ant comlile
(2)编译测试文件
C:\myproject>ant testcompile
(3)生成jar文件,并且不包含测试文件。
C:\myproject>ant make-jar
(4)通过ant执行Junit测试,生成测试报告。
C:\myproject>ant runtest
分享到:
相关推荐
**Ant执行JUnit** Apache Ant,一个Java库和命令行工具,其任务是驱动构建过程。它是Java项目的主要构建工具之一,以其灵活性和可扩展性而闻名。JUnit,则是Java编程语言中最广泛使用的单元测试框架,它允许开发...
"ant-junit-1.6.5.jar"是Ant对JUnit支持的库文件,它包含了Ant执行JUnit测试所需的类和方法。这个JAR文件让Ant能够调用JUnit,并在构建过程中运行测试。在build.xml文件中,可以配置JUnit任务(<junit>),指定测试...
当ANT执行测试时,JUnit会运行所有的测试用例,并报告测试结果。 6. **源码分析**:压缩包中的"testAntJunit"文件可能是包含了一个示例项目,这个项目演示了如何在Eclipse中设置ANT脚本和JUnit测试。通过查看源码,...
通过Ant,你可以设定一系列构建规则,包括编译源代码、执行测试、打包应用等,而JUnit则在每个开发周期中为你的代码提供快速反馈,确保每个单元都按预期工作。 在实际项目中,开发者通常会利用Ant的classpath元素...
《Ant与JUnit结合:ant-junit-1.7.0.jar.zip详解》 在软件开发过程中,测试是不可或缺的一环,而JUnit作为Java语言中最常用的单元测试框架,为开发者提供了便利。同样,Apache Ant作为一款强大的构建工具,帮助...
在Java开发过程中,Ant和JUnit是两个非常重要的工具。Ant是一个构建工具,它允许开发者自动化构建、测试和部署Java项目,而JUnit则是一个单元测试框架,用于编写和运行可重复的测试用例,确保代码质量。这个“ant+...
通过Ant-junit4.jar,我们可以让Ant自动执行JUnit4测试,生成测试报告,并将测试结果集成到构建流程中,确保代码的质量。 要使用ant-junit4.jar,首先需要将其解压,获取ant-junit4.jar文件。然后在Ant的lib目录下...
《Ant与JUnit结合:ant-junit-1.6.1.jar.zip详解》 在软件开发过程中,测试是不可或缺的一环,而JUnit作为Java语言中最常用的单元测试框架,为开发者提供了便利。同样,Apache Ant作为自动化构建工具,对于项目管理...
Ant的核心概念是任务(Tasks),它们是Ant执行的具体操作。例如,`javac`任务用于编译Java源代码,`jar`任务用于创建JAR文件。Ant强调可配置性和可扩展性,可以适应各种项目的需求。 2. **JUnit**: JUnit是Java...
标题“Ant与JUnit结合”指的是在Java开发中如何利用Apache Ant构建工具与JUnit测试框架进行集成,以便自动化地运行单元测试。Apache Ant是一种基于XML的构建工具,它替代了传统的Makefile,为Java项目提供了构建、...
在IT行业中,Ant和JUnit是两个非常...通过这种方式,Ant和JUnit的整合使得开发者能够在构建过程中轻松地执行和监控测试,从而提高开发效率和代码质量。理解并熟练运用这种整合对于任何Java开发团队来说都是非常重要的。
通过Ant执行`test`目标后,Ant会自动调用JUnit运行测试,并将结果输出到控制台或指定的报告文件中。如果测试失败,Ant会显示错误信息,帮助开发者定位问题。 在实际项目中,我们可能还需要配置测试结果的XML输出,...
在与JUnit结合使用时,Ant可以在构建过程中自动执行测试,并生成测试报告。在配置`junit`任务时,你需要指定测试类或包含测试的类路径,还可以设置如失败时是否中断构建等选项。例如: ```xml <junit ...
这个JAR文件包含了Ant对JUnit的支持,使得Ant能够执行JUnit测试并获取测试结果。在构建过程中,开发者可以使用Ant的junit任务来调用这个库,从而在构建脚本中集成单元测试。 具体使用时,开发者需要在Ant的类路径中...
标题中的"ant-junit-1.8.1.jar.zip"是一个压缩文件,它包含了与Apache Ant和JUnit相关的组件。这个文件特别的是版本号为1.8.1,这表明它是2009年发布的一个较旧但仍然广泛使用的版本。在IT领域,Ant和JUnit是两个...
Ant的灵活性在于,你可以根据项目需求定制自己的构建流程,通过定义不同的目标(target)来执行特定的任务。 JUnit是一个流行的Java单元测试框架,它为开发者提供了一种结构化的编写测试代码的方式。开发者只需要按照...
总结来说,本示例展示了如何使用Apache Ant管理和执行Java项目的单元测试,结合JUnit进行测试用例的编写。通过Ant的XML配置文件,我们可以自动化测试过程,提高开发效率,确保代码质量。同时,通过属性文件可以方便...
2. **集成测试环境**:将JUnit集成到Ant中,可以在构建流程中自动执行测试,确保代码质量。 3. **详细的测试报告**:JUnit可以生成XML或HTML格式的测试报告,方便查看测试结果。 4. **灵活的配置**:通过XML配置,...
首先,"ant-junit-1.6.2.jar"是Ant与JUnit的一个集成版本,它包含了用于在Ant构建脚本中执行JUnit测试的类和库。这个版本对应于JUnit 4.x系列,是JUnit 4.6到4.8之间的某个稳定版本,因为JUnit 5是在1.6.2之后发布的...