<?xml version="1.0" encoding="UTF-8"?>
<!-- =============================================================== -->
<!-- ANT buildfile快速参考 -->
<!-- ALin 2006-12-30 14:20 -->
<!-- =============================================================== -->
<project default="help" basedir="." name="Cabin">
<!-- project的描述,可以省略 -->
<description>Ant Buildfile参考</description>
<!-- =========================================================== -->
<!-- 项目相关的属性设置 -->
<!-- =========================================================== -->
<property environment="env"></property><!-- 引用系统环境变量 -->
<property name="app.nane" value="Cabin"></property>
<property name="app.home" value="."></property>
<property name="src.dir" value="${app.home}/src"></property>
<property name="bin.dir" value="${app.home}/bin"></property>
<property name="lib.dir" value="${app.home}/lib"></property>
<property name="build.dir" value="${app.home}/build"></property>
<property name="build.classes" value="${build.dir}/classes"/>
<property name="deploy.dir" value="${app.home}/hello"/>
<property name="deploy.classes" value="${deploy.dir}/WEB-INF/classes"/>
<property name="TOMCAT_HOME" value="C:/Tomcat 5.5"/>
<property name="Log4j.conf" value="log4j.configuration"></property>
<property name="Log4j.file" value="log4j.properties"></property>
<property name="JWSDP.HOME" value="C:/Sun/jwsdp-2.0"></property>
<property name="JAXB.HOME" value="${JWSDP.HOME}/jaxb"></property>
<property name="dtd.file1" value="datasource.dtd"></property>
<property name="dtd.file2" value="bookList.dtd"></property>
<property name="jboss.jar.dir"
value="D:/Program Files/jboss-4.0.2/client"></property>
<!-- 定义XDoclet目录,后面用到其中的Task -->
<property name="xdoclet.home" value="D:/Program Files/xdoclet-1.2.3"></property>
<!-- 引用外部属性文件 -->
<property file="db.properties"></property>
<!-- =========================================================== -->
<!-- 编译和运行的classpath -->
<!-- =========================================================== -->
<path id="compile.classpath">
<!-- The object files for this application -->
<pathelement path="${build.classes}"/>
<!-- 包括目录下的所有.jar和.zip文件 -->
<fileset dir="${TOMCAT_HOME}/common/lib"> <!-- lib的目录 -->
<include name="*.jar"/> <!-- 包括jar文件 -->
<include name="*.zip"/>
<exclude name="*.properties"/> <!-- 不包括properties文件 -->
</fileset>
<!-- 可以指定具体的某个.jar文件 -->
<fileset dir="${jboss.jar.dir}">
<include name="jbossall-client.jar"/>
<include name="jnp-client.jar"/>
</fileset>
<!-- 可以使用location代替path -->
<pathelement path="${TOMCAT_HOME}/common/classes"/>
</path>
<!-- XDoelet的lib目录 -->
<path id="xdoclet.lib.path">
<fileset dir="${xdoclet.home}/lib">
<include name="*.jar"/>
</fileset>
</path>
<!-- 定义Task,自己扩展的Ant Task也使用类似的语法进行定义 -->
<target name="define-task">
<taskdef name="documentdoclet"
classname="xdoclet.modules.doc.DocumentDocletTask"
classpathref="xdoclet.lib.path">
</taskdef>
<taskdef name="ejbdoclet"
classname="xdoclet.modules.ejb.EjbDocletTask"
classpathref="xdoclet.lib.path">
</taskdef>
<taskdef name="webdoclet"
classname="xdoclet.modules.web.WebDocletTask"
classpathref="xdoclet.lib.path" />
</target>
<!-- 创建目录,如果已经存在,则跳过 -->
<target name="prepare">
<mkdir dir="${src.dir}/META-INF"/>
<mkdir dir="${bin.dir}/META-INF"/>
<mkdir dir="${lib.dir}"/>
</target>
<!-- =========================================================== -->
<!-- target设置 -->
<!-- =========================================================== -->
<target name="compile" depends="prepare">
<javac srcdir="${src.dir}" destdir="${build.classes}" debug="no">
<!-- 引用上面的compile.classpath-->
<classpath refid="compile.classpath"/>
</javac>
</target>
<target name="copy" depends="compile">
<!-- 把${src.dir}下面的properties文件复制到${deploy.classes} -->
<copy todir="${deploy.classes}">
<fileset file="${src.dir}/*.properties"/>
</copy>
<!-- 复制指定文件 -->
<copy todir="${deploy.home}">
<fileset file="${build.classes}/${app.name}.jar"/>
</copy>
<!-- 把${build.classes}下面的文件复制到${deploy.classes},包 -->
<!-- 括.class文件,不包括.log文件,子目录中的文件也会复制。 -->
<copy todir="${deploy.classes}">
<fileset dir="${build.classes}">
<include name="**/*.class"/>
<exclude name="**/*.log"/>
</fileset>
</copy>
<!-- 复制具体文件,覆盖已有的文件 -->
<copy file="src/META-INF/services.xml"
tofile="${dest.dir.classes}/META-INF/services.xml"
overwrite="true"/>
</target>
<!-- 使用JDK的native2ascii工具执行本地化操作,转换编码。 -->
<target name="locale">
<echo>Target ----- [locale]</echo>
<exec dir="${src.dir}" executable="native2ascii" os="Windows XP">
<arg
line="-encoding GBK MessageResources_temp.properties
MessageResources_zh_CN.properties"/>
</exec>
</target>
<target name="clean">
<!-- 删除${deploy.classes}下面的所有(.class)文件-->
<delete>
<fileset dir="${deploy.classes}">
<include name="*"/> <!-- 包括所有文件 -->
<include name="*/**.class"/>
<exclude name=""/> <!-- ""表示不含任何文件 -->
</fileset>
</delete>
<!-- 删除${bin.dir}下面的.class、.xml、.properties、.log文件 -->
<delete>
<fileset dir="${bin.dir}">
<include name="**/*.class"/>
<include name="**/*.xml"/>
<include name="**/*.properties"/>
<include name="**/*.log"/>
</fileset>
</delete>
<!-- 删除指定路径的文件 -->
<delete file="${deploy.home}/${app.name}.jar"></delete>
</target>
<!-- run依赖于compile和delete -->
<!-- 类似于在${bin.dir}下面执行java events.EventManager,只有 -->
<!-- fork="YES"的情况下,dir属性才有效,使用classpathref引用前面 -->
<!-- 的compile.classpath。 -->
<!-- arg表示提供参数。运行方式:ant run -Daction=value -->
<!-- 其效果等同于:java events.EventManager value -->
<!-- 只不过不再需要用-cp指定classpath,非常方便。 -->
<target name="run" depends="compile, clean">
<java classname="events.EventManager" fork="YES" dir="${bin.dir}"
classpathref="compile.classpath">
<classpath path="${bin.dir}"/><!-- classpath是必须的,否则会出现NoClassDefFoundError -->
<arg value="${action}"/> <!-- arg也不是必须的,1或多个 -->
</java>
</target>
<!-- 使用exec可以运行可执行文件。dir表示在某个目录下执行; -->
<!-- executable表示可执行文件的路径,如果在path变量中,则只要 -->
<!-- 可执行文件名即可,否则应该给出完整路径;os表示是什么系统; -->
<!-- 也可以通过arg提供参数。 -->
<target name="xjc">
<echo>Run xjc.bat and generate sources.</echo>
<exec dir="${src.dir}" executable="${JAXB.HOME}/bin/xjc.bat" os="Windows XP">
<arg line="-dtd ${dtd.file2}"></arg>
<!--arg value="${dtd}"></arg--><!-- DTD file as run-time argument-->
</exec>
</target>
<!-- 把${bin.dir}下面的所有文件打包成:${app.name}.aar文件,并放 -->
<!-- 置在${bin.dir}目录下。类似于在${bin.dir}目录下执行: -->
<!-- jar cvf Cabin.aar . -->
<target name="jar">
<jar basedir="${bin.dir}" destfile="${bin.dir}/${app.name}.aar">
<!-- =============================================================== -->
<!-- ANT buildfile快速参考 -->
<!-- ALin 2006-12-30 14:20 -->
<!-- =============================================================== -->
<project default="help" basedir="." name="Cabin">
<!-- project的描述,可以省略 -->
<description>Ant Buildfile参考</description>
<!-- =========================================================== -->
<!-- 项目相关的属性设置 -->
<!-- =========================================================== -->
<property environment="env"></property><!-- 引用系统环境变量 -->
<property name="app.nane" value="Cabin"></property>
<property name="app.home" value="."></property>
<property name="src.dir" value="${app.home}/src"></property>
<property name="bin.dir" value="${app.home}/bin"></property>
<property name="lib.dir" value="${app.home}/lib"></property>
<property name="build.dir" value="${app.home}/build"></property>
<property name="build.classes" value="${build.dir}/classes"/>
<property name="deploy.dir" value="${app.home}/hello"/>
<property name="deploy.classes" value="${deploy.dir}/WEB-INF/classes"/>
<property name="TOMCAT_HOME" value="C:/Tomcat 5.5"/>
<property name="Log4j.conf" value="log4j.configuration"></property>
<property name="Log4j.file" value="log4j.properties"></property>
<property name="JWSDP.HOME" value="C:/Sun/jwsdp-2.0"></property>
<property name="JAXB.HOME" value="${JWSDP.HOME}/jaxb"></property>
<property name="dtd.file1" value="datasource.dtd"></property>
<property name="dtd.file2" value="bookList.dtd"></property>
<property name="jboss.jar.dir"
value="D:/Program Files/jboss-4.0.2/client"></property>
<!-- 定义XDoclet目录,后面用到其中的Task -->
<property name="xdoclet.home" value="D:/Program Files/xdoclet-1.2.3"></property>
<!-- 引用外部属性文件 -->
<property file="db.properties"></property>
<!-- =========================================================== -->
<!-- 编译和运行的classpath -->
<!-- =========================================================== -->
<path id="compile.classpath">
<!-- The object files for this application -->
<pathelement path="${build.classes}"/>
<!-- 包括目录下的所有.jar和.zip文件 -->
<fileset dir="${TOMCAT_HOME}/common/lib"> <!-- lib的目录 -->
<include name="*.jar"/> <!-- 包括jar文件 -->
<include name="*.zip"/>
<exclude name="*.properties"/> <!-- 不包括properties文件 -->
</fileset>
<!-- 可以指定具体的某个.jar文件 -->
<fileset dir="${jboss.jar.dir}">
<include name="jbossall-client.jar"/>
<include name="jnp-client.jar"/>
</fileset>
<!-- 可以使用location代替path -->
<pathelement path="${TOMCAT_HOME}/common/classes"/>
</path>
<!-- XDoelet的lib目录 -->
<path id="xdoclet.lib.path">
<fileset dir="${xdoclet.home}/lib">
<include name="*.jar"/>
</fileset>
</path>
<!-- 定义Task,自己扩展的Ant Task也使用类似的语法进行定义 -->
<target name="define-task">
<taskdef name="documentdoclet"
classname="xdoclet.modules.doc.DocumentDocletTask"
classpathref="xdoclet.lib.path">
</taskdef>
<taskdef name="ejbdoclet"
classname="xdoclet.modules.ejb.EjbDocletTask"
classpathref="xdoclet.lib.path">
</taskdef>
<taskdef name="webdoclet"
classname="xdoclet.modules.web.WebDocletTask"
classpathref="xdoclet.lib.path" />
</target>
<!-- 创建目录,如果已经存在,则跳过 -->
<target name="prepare">
<mkdir dir="${src.dir}/META-INF"/>
<mkdir dir="${bin.dir}/META-INF"/>
<mkdir dir="${lib.dir}"/>
</target>
<!-- =========================================================== -->
<!-- target设置 -->
<!-- =========================================================== -->
<target name="compile" depends="prepare">
<javac srcdir="${src.dir}" destdir="${build.classes}" debug="no">
<!-- 引用上面的compile.classpath-->
<classpath refid="compile.classpath"/>
</javac>
</target>
<target name="copy" depends="compile">
<!-- 把${src.dir}下面的properties文件复制到${deploy.classes} -->
<copy todir="${deploy.classes}">
<fileset file="${src.dir}/*.properties"/>
</copy>
<!-- 复制指定文件 -->
<copy todir="${deploy.home}">
<fileset file="${build.classes}/${app.name}.jar"/>
</copy>
<!-- 把${build.classes}下面的文件复制到${deploy.classes},包 -->
<!-- 括.class文件,不包括.log文件,子目录中的文件也会复制。 -->
<copy todir="${deploy.classes}">
<fileset dir="${build.classes}">
<include name="**/*.class"/>
<exclude name="**/*.log"/>
</fileset>
</copy>
<!-- 复制具体文件,覆盖已有的文件 -->
<copy file="src/META-INF/services.xml"
tofile="${dest.dir.classes}/META-INF/services.xml"
overwrite="true"/>
</target>
<!-- 使用JDK的native2ascii工具执行本地化操作,转换编码。 -->
<target name="locale">
<echo>Target ----- [locale]</echo>
<exec dir="${src.dir}" executable="native2ascii" os="Windows XP">
<arg
line="-encoding GBK MessageResources_temp.properties
MessageResources_zh_CN.properties"/>
</exec>
</target>
<target name="clean">
<!-- 删除${deploy.classes}下面的所有(.class)文件-->
<delete>
<fileset dir="${deploy.classes}">
<include name="*"/> <!-- 包括所有文件 -->
<include name="*/**.class"/>
<exclude name=""/> <!-- ""表示不含任何文件 -->
</fileset>
</delete>
<!-- 删除${bin.dir}下面的.class、.xml、.properties、.log文件 -->
<delete>
<fileset dir="${bin.dir}">
<include name="**/*.class"/>
<include name="**/*.xml"/>
<include name="**/*.properties"/>
<include name="**/*.log"/>
</fileset>
</delete>
<!-- 删除指定路径的文件 -->
<delete file="${deploy.home}/${app.name}.jar"></delete>
</target>
<!-- run依赖于compile和delete -->
<!-- 类似于在${bin.dir}下面执行java events.EventManager,只有 -->
<!-- fork="YES"的情况下,dir属性才有效,使用classpathref引用前面 -->
<!-- 的compile.classpath。 -->
<!-- arg表示提供参数。运行方式:ant run -Daction=value -->
<!-- 其效果等同于:java events.EventManager value -->
<!-- 只不过不再需要用-cp指定classpath,非常方便。 -->
<target name="run" depends="compile, clean">
<java classname="events.EventManager" fork="YES" dir="${bin.dir}"
classpathref="compile.classpath">
<classpath path="${bin.dir}"/><!-- classpath是必须的,否则会出现NoClassDefFoundError -->
<arg value="${action}"/> <!-- arg也不是必须的,1或多个 -->
</java>
</target>
<!-- 使用exec可以运行可执行文件。dir表示在某个目录下执行; -->
<!-- executable表示可执行文件的路径,如果在path变量中,则只要 -->
<!-- 可执行文件名即可,否则应该给出完整路径;os表示是什么系统; -->
<!-- 也可以通过arg提供参数。 -->
<target name="xjc">
<echo>Run xjc.bat and generate sources.</echo>
<exec dir="${src.dir}" executable="${JAXB.HOME}/bin/xjc.bat" os="Windows XP">
<arg line="-dtd ${dtd.file2}"></arg>
<!--arg value="${dtd}"></arg--><!-- DTD file as run-time argument-->
</exec>
</target>
<!-- 把${bin.dir}下面的所有文件打包成:${app.name}.aar文件,并放 -->
<!-- 置在${bin.dir}目录下。类似于在${bin.dir}目录下执行: -->
<!-- jar cvf Cabin.aar . -->
<target name="jar">
<jar basedir="${bin.dir}" destfile="${bin.dir}/${app.name}.aar">
相关推荐
这篇博客文章“ant build.xml例子”可能详细介绍了如何使用Ant来管理Java项目的构建过程。 `build.xml`文件是Ant的核心,它使用XML语法定义了一系列的任务(tasks),这些任务包含了构建过程中的各种操作,如编译源...
ant例子说明 (先下载并解压ant,并将ant的bin目录放到系统变量中.cmd运行测试ant即可) 1.新建一个类, 在内部写好main方法 2.重点是写build.xml. 本例子写了delete,mkdir,javac,jar,java这几个最常用的命令。 ...
通过一个简单的例子,学习者将理解Ant的基本用法,包括编写build.xml文件,配置和执行构建任务,以及在Eclipse中集成和管理Ant构建。这对于任何Java开发者来说都是必备的技能,因为它有助于自动化项目构建过程,提高...
Ant以其灵活性和可配置性而受到广大开发者喜爱,它使用XML来描述构建过程,使得构建脚本易于理解和维护。下面,我们将详细探讨Ant的第一个例子及其相关知识点。 1. **Ant的基本概念**: Ant是一个Java库和命令行...
Apache Ant是一种广泛使用的Java构建工具,它以XML为基础来描述构建过程,允许开发者定义构建任务、依赖关系以及项目构建的整个流程。Ant以其灵活性和可扩展性而受到开发者喜爱,它可以自动化编译、打包、测试等Java...
《Ant build.xml构建详解》 在软件开发过程中,构建工具起着至关重要的作用,它能够自动化执行编译、测试、打包等任务。Apache Ant是Java领域广泛应用的一个构建工具,其核心在于一个名为`build.xml`的配置文件。...
在"ANT初步学习的例子"中,我们可以通过运行`ant`命令来执行build.xml中的目标。这个例子将帮助初学者理解Ant的基本结构和命令行界面,以及如何在实际项目中使用Ant进行构建。通过分析和运行这个"Hello World"项目,...
在描述的"ant部署struts小例子"中,可能会有一个`build.xml`文件,这是Ant的主配置文件。在这个文件中,会有`<target>`标签定义不同的任务,如编译源码、生成JAR或WAR包。 2. **编译源码**:使用`<javac>`任务编译...
其次,Ant是一个基于XML的构建工具,它的任务驱动模型使得构建脚本易于理解和维护。通过Ant,我们可以定义一系列的任务,如编译源代码、运行测试、打包应用等,并可以跨平台执行。 集成Junit和Ant,我们需要在Ant...
在构建web项目中用到的ant的build.xml的例子
### ANT-build.xml 文件详解 #### Ant 的概念及与 Make 的比较 Ant 是一款开源的 Java 构建工具,它的设计理念主要是解决 Make 工具在跨平台应用中存在的问题。对于熟悉 Linux 的用户而言,Make 命令作为一种项目...
在"ant导出jar包例子"中,`build.xml`文件可能包含如下内容: ```xml ${build.dir}/classes"/> ${build.dir}/jar"/> ${build.dir}"/> ${classes.dir}"/> ${jar.dir}"/> ${src.dir}" destdir="${...
ant脚本例子,一个build.xml模板, 修改后直接运行。
在这个例子中,我们将深入理解Ant的工作原理、基本配置文件(build.xml)的结构以及如何使用它来管理Java项目。 Apache Ant的核心概念是任务(Tasks),这些任务是Ant执行的具体操作,如编译源代码、打包JAR文件、...
ANT基于XML,用于定义任务、目标和依赖关系,使得构建过程可配置且可重复。在Eclipse中,可以通过内置的ANT支持来编写和运行ANT构建脚本,方便项目的构建和测试。 3. **JUnit**:JUnit是Java编程语言的一个单元测试...
Ant基于XML来定义构建脚本,这使得它跨平台且易于理解和维护。在Java开发环境中,Ant扮演着与C/C++开发中的make类似的角色,但更专注于Java生态系统的特性。 Ant的核心是`build.xml`文件,这是一个XML文档,其中...
通过阅读`命令.txt`、`ant知识.txt`、`ant构建Java.txt`、`ant例子.txt`这些文件,你可以深入了解Ant的使用方法,包括命令行调用、具体的构建步骤、Java项目构建实例以及各种任务的实践应用。这些资料将帮助你掌握...
在“Ant学习例子”中,我们将探讨如何使用Ant进行Java应用的打包操作。打包是软件开发过程中的一个重要环节,它将源代码编译后的类文件以及其他资源文件整合成一个或多个可分发的格式,例如JAR或WAR文件。通过Ant,...
通过这个Ant发布Android到手机的例子,我们可以看到Ant在Android开发中的强大作用。它可以提高开发效率,特别是在团队协作和持续集成环境中,Ant能够提供稳定和可重复的构建流程。同时,对于熟悉命令行操作的开发者...