- 1. <property file="build.properties"/>
把build.properties文件里的键值对导入到build.xml ,以后就可以在build.xml 里使用${db.driver}来读到build.properties里配置的值org.hsqldb.jdbcDriver
这个很有用,需要改变值的时候,只需改变build.properties的值,但build.xml文件不用修改
- db.url=jdbc:hsqldb:hsql://localhost/training
- db.driver=org.hsqldb.jdbcDriver
- db.username=sa
- db.password=
- hibernate.dialect=net.sf.hibernate.dialect.HSQLDialect
2.<path id="ant.lib.path"></path>
指定了一个路径,路径下放着指定的jar文件
3. <path location="${classes.dir}"/>
指定了一个路径里的所有文件
4. <fileset dir="${xdoclet.lib.dir}">
<include name="*.jar"/>
</fileset>
这个表示把路径${xdoclet.lib.dir}里的所有的.jar文件包括进来,不包括子文件夹里的.jar文件
如果用这个 <include name="**/*.jar"/>,表示包括这个文件夹里所有的 .jar文件,包括所有子文件夹里的.jar文件
5.<copy toDir="${depends.dir}">
<mapper type="flatten"/>
<fileset refid="runtime.fileset"/>
</copy>
表示将id名为runtime.fileset的<fileset >里包括的文件去掉文件夹copy到${depends.dir}
6. 打包工程
<war destfile="${war.file}" webxml="${webxml.file}">
<lib dir="${lib.dir}" includes="*.jar"/>
<lib dir="${depends.dir}" includes="*.jar"/>
<classes dir="${classes.dir}"/>
<classes dir="${hbm.dir}"/>
<webinf dir="${webinf.dir}" excludes="web.xml"/>
<webinf dir="${target.dir}/webapp/WEB-INF"/>
<fileset dir="${web.src.dir}" includes="index.html,jsp/**"/>
</war>
destfile 在指定位置创造了一个.war文件
webxml 将指定位置的web.xml 放在webapp/WEB-INF里
<lib 将所包含的jar文件放在WEB-INF/lib 里
<classes 将所包含的文件放在WEB-INF/classes 里
<webinf 将指定路径的所有文件,除了web.xml,全部都copy到WEB-INF/里
<fileset 将指定路径的所有文件全部都copy到WEB-INF/的父目录,则和WEB-INF在同一个目录
7.用于将build.properties文件里的值来修改hibernate.properties里的属性值,动态生成一个hibernate.properties文件
<filter token="db.url" value="${db.url}"/>
<copy todir="${target.dir}/webapp/WEB-INF"
file="${config.dir}/hibernate.properties"
filtering="true"
overwrite="true"/>
表示但把 file指定路径下的hibernate.properties文件copy到指定路径时,将会执行一个动作,在hibernate.properties文件里所有出现的这个字符串(token指定的字符串)将被value指定的值所替换
- <?xml version="1.0"?>
- <!-- ======================================================================
- Aug 19, 2004 7:18:13 PM
- Spring Training
- The Spring Training application from Spring in Action
- Craig Walls
- Ryan Breidenbach
- ====================================================================== -->
- <project name="SpringTraining" default="war">
- <description>
- The Spring Training application from Spring in Action
- </description>
- <property name="target.dir" location="target"/>
- <property name="src.dir" location="src"/>
- <property name="java.src.dir" location="${src.dir}/java/main"/>
- <property name="test.src.dir" location="${src.dir}/java/test"/>
- <property name="web.src.dir" location="${src.dir}/webapp"/>
- <property name="webinf.dir" location="${web.src.dir}/WEB-INF"/>
- <property name="classes.dir" location="${target.dir}/classes"/>
- <property name="lib.dir" location="lib"/>
- <property name="war.file" location="${target.dir}/${ant.project.name}.war"/>
- <property name="webxml.file" location="${webinf.dir}/web.xml"/>
- <property name="depends.dir" location="${target.dir}/dependencies"/>
- <property name="xdoclet.lib.dir" location="xdocletlib"/>
- <property name="hbm.dir" location="${target.dir}/hbm"/>
- <property name="config.dir" location="config"/>
- <property file="build.properties"/>
- <!-- 指定了一个路径,路径下放着指定的jar文件 -->
- <path id="ant.lib.path">
- <fileset dir="${xdoclet.lib.dir}">
- <include name="*.jar"/>
- </fileset>
- <fileset dir="${spring.home}/lib">
- <include name="**/*.jar"/>
- </fileset>
- <fileset dir="${lib.dir}" includes="hsqldb*.jar"/>
- <path location="${classes.dir}"/>
- </path>
- <fileset id="runtime.fileset" dir="${spring.home}/lib">
- <include name="aopalliance/aopalliance.jar" />
- <include name="hibernate/*.jar" />
- <include name="log4j/*.jar" />
- <include name="jakarta-commons/commons-logging.jar" />
- <include name="jakarta-commons/commons-lang.jar" />
- <include name="jakarta-commons/commons-beanutils.jar" />
- <include name="jakarta-commons/commons-digester.jar" />
- <include name="cglib/*.jar" />
- <include name="dom4j/*.jar" />
- <include name="j2ee/jta.jar" />
- <!--
- <include name="j2ee/jstl.jar" />
- <include name="jakarta-taglibs/*.jar" />
- -->
- <include name="itext/*.jar" />
- <include name="poi/*.jar" />
- <include name="oro/*.jar" />
- <include name="caucho/*.jar" />
- </fileset>
- <!-- - - - - - - - - - - - - - - - - -
- target: copy dependency jars
- - - - - - - - - - - - - - - - - - -->
- <target name="-copyDependencies">
- <mkdir dir="${depends.dir}"/>
- <copy toDir="${depends.dir}">
- <mapper type="flatten"/>
- <fileset refid="runtime.fileset"/>
- </copy>
- </target>
- <!-- =================================
- target: default
- ================================= -->
- <target name="war" depends="-copyDependencies,compile,generate-hbm,config"
- description="--> Build the WAR file">
- <war destfile="${war.file}" webxml="${webxml.file}">
- <lib dir="${lib.dir}" includes="*.jar"/>
- <lib dir="${depends.dir}" includes="*.jar"/>
- <classes dir="${classes.dir}"/>
- <classes dir="${hbm.dir}"/>
- <webinf dir="${webinf.dir}" excludes="web.xml"/>
- <webinf dir="${target.dir}/webapp/WEB-INF"/>
- <fileset dir="${web.src.dir}" includes="index.html,jsp/**"/>
- </war>
- </target>
- <!-- - - - - - - - - - - - - - - - - -
- target: generate hbm files
- - - - - - - - - - - - - - - - - - -->
- <target name="config">
- <filter token="db.url" value="${db.url}"/>
- <filter token="db.driver" value="${db.driver}"/>
- <filter token="db.username" value="${db.username}"/>
- <filter token="db.password" value="${db.password}"/>
- <filter token="hibernate.dialect" value="${hibernate.dialect}"/>
- <filter token="logfile.path" value="${logfile.path}"/>
- <mkdir dir="${target.dir}/webapp/WEB-INF/classes"/>
- <copy todir="${target.dir}/webapp/WEB-INF"
- file="${config.dir}/hibernate.properties"
- filtering="true"
- overwrite="true"/>
- <copy todir="${target.dir}/webapp/WEB-INF/classes"
- file="${config.dir}/log4j.properties"
- filtering="true"
- overwrite="true"/>
- </target>
- <!-- - - - - - - - - - - - - - - - - -
- target: generate hbm files
- - - - - - - - - - - - - - - - - - -->
- <target name="generate-hbm" depends="compile">
- <mkdir dir="${hbm.dir}"/>
- <taskdef name="hibernatedoclet"
- classname="xdoclet.modules.hibernate.HibernateDocletTask"
- classpathref="ant.lib.path" />
- <hibernatedoclet destdir="${hbm.dir}">
- <fileset dir="${java.src.dir}">
- <include name="**/*.java" />
- </fileset>
- <hibernate version="2.0"/>
- </hibernatedoclet>
- </target>
- <!-- - - - - - - - - - - - - - - - - -
- target: generate database schema
- - - - - - - - - - - - - - - - - - -->
- <target name="schema" depends="generate-hbm,config">
- <taskdef name="schemaexport"
- classname="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask"
- classpathref="ant.lib.path"/>
- <schemaexport properties="${target.dir}/webapp/WEB-INF/hibernate.properties"
- quiet="yes"
- text="no"
- drop="no"
- delimiter=";"
- output="target/schema.sql">
- <fileset dir="${hbm.dir}">
- <include name="**/*.hbm.xml"/>
- </fileset>
- </schemaexport>
- </target>
- <!-- - - - - - - - - - - - - - - - - -
- target: setup database
- - - - - - - - - - - - - - - - - - -->
- <target name="setup_db" depends="schema">
- <sql driver="${db.driver}"
- url="${db.url}"
- userid="${db.username}"
- password="${db.password}"
- src="setup.sql"
- print="yes">
- <classpath>
- <pathelement location="lib/hsqldb.jar"/>
- </classpath>
- </sql>
- </target>
- <!-- - - - - - - - - - - - - - - - - -
- target: start Hypersonic
- - - - - - - - - - - - - - - - - - -->
- <target name="hsql">
- <echo message="Starting HSQLDB"/>
- <java fork="true" dir="." classname="org.hsqldb.Server">
- <classpath>
- <pathelement path="${lib.dir}/hsqldb.jar"/>
- </classpath>
- <arg value="-database.0"/>
- <arg value="${hsql.path}"/>
- <arg value="-dbname.0"/>
- <arg value="${hsql.name}"/>
- </java>
- </target>
- <!-- - - - - - - - - - - - - - - - - -
- target: compile
- - - - - - - - - - - - - - - - - - -->
- <target name="compile">
- <mkdir dir="${classes.dir}"/>
- <javac srcdir="${java.src.dir}" destdir="${classes.dir}">
- <classpath>
- <pathelement path="${classpath}"/>
- <fileset dir="${xdoclet.lib.dir}">
- <include name="**/*.jar"/>
- </fileset>
- <fileset dir="${spring.home}/lib">
- <include name="**/*.jar"/>
- </fileset>
- <pathelement location="${spring.home}/dist/spring.jar"/>
- </classpath>
- </javac>
- </target>
- <!-- - - - - - - - - - - - - - - - - -
- target: deploy web application
- - - - - - - - - - - - - - - - - - -->
- <target name="deploy" depends="war">
- <copy file="${war.file}" todir="${deploy.target}"/>
- </target>
- <!-- - - - - - - - - - - - - - - - - -
- target: clean
- - - - - - - - - - - - - - - - - - -->
- <target name="clean">
- <delete dir="${target.dir}"/>
- </target>
- <target name="zipItUp" depends="clean">
- <delete file="${target.dir}/${ant.project.name}.zip"/>
- <mkdir dir="${target.dir}"/>
- <zip destfile="${target.dir}/${ant.project.name}.zip">
- <zipfileset dir="." prefix="${ant.project.name}">
- <include name="**"/>
- <exclude name="bin/**"/>
- <exclude name="target/**"/>
- <exclude name="todo.txt"/>
- <exclude name="src/webapp/WEB-INF/freemarker/**"/>
- <exclude name="src/webapp/WEB-INF/velocity/**"/>
- </zipfileset>
- </zip>
- </target>
- </project>
相关推荐
"Ant十五大最佳实践.doc"则可能总结了经验丰富的开发者在使用Ant时总结的一些技巧和建议,比如合理组织构建文件,使用变量和属性来减少重复,保持构建文件的简洁性,以及利用Ant的条件和循环结构来优化构建过程。...
总结来说,Ant是一个强大的Java构建工具,通过XML配置文件实现构建过程的自动化。了解并熟练掌握Ant的使用,能极大地提升Java开发者的项目管理和构建效率。这份“Ant使用指南”将深入浅出地讲解Ant的各种特性和用法...
### ant使用手册ANT使用指南 #### 一、引言 Ant是一种流行的开源构建工具,用于自动化软件项目的构建过程。尤其适用于Java项目,但它也可以用于非Java项目。由于Ant的灵活性和易用性,它在Java开发者社区中迅速...
"Ant ant ant antant ant ant antant ant ant ant" 这个描述可能是在强调Ant在项目构建过程中的重复性和不可或缺性,暗示着它在工程中的频繁使用和核心地位。 Ant的设计理念是“一切都是XML”,它通过XML格式的构建...
### ANT使用指南详解 #### 一、导言 Apache Ant 是一款开源的Java构建工具,类似于传统的Unix Make工具。Ant采用XML格式来定义构建过程,提供了丰富的任务(task)集合,适用于自动化编译、测试和部署Java应用程序。...
总结,Ant作为Java开发中的构建工具,其强大在于灵活性和可扩展性。通过理解并掌握Ant的基本概念和常用任务,开发者可以自定义构建流程,提高开发效率。无论是小型项目还是大型企业级应用,Ant都能提供有力的支持。...
Apache Ant 编译命令总结 Apache Ant 是一个基于 Java 的生成工具,主要用来将源代码和其他输入文件转换为可执行文件的形式,或者转换为可安装的产品映像形式。Ant 在软件开发中扮演着重要角色,确保在每次生成期间...
总结,Ant是Java开发者的重要工具,掌握Ant的使用能够提高开发效率,简化项目管理。通过了解Ant的基本结构、任务和属性,初学者可以快速上手,并根据项目的具体需求进行定制。同时,理解Ant与其他构建工具(如Maven...
总结来说,Ant结合JavaScript脚本提供了一种强大的方式来定制和扩展构建过程,尤其适合处理项目中的特殊需求。通过熟练掌握这一技巧,开发者能够更有效地管理和自动化他们的Java项目,提高开发效率,减少手动操作...
《ANT使用详细总结与心得》 ANT,全称Apache Ant,是一个Java库和命令行工具,其任务是驱动构建过程。它的设计目标是推动软件项目的构建过程自动化,尤其是在Java环境中。ANT以其灵活性和可扩展性著称,通过XML格式...
总结一下,Ant是一个强大的Java项目构建工具,其核心在于XML格式的构建文件,它定义了项目的构建步骤和依赖。这个最简单的实例展示了如何用Ant编译源代码、创建JAR文件以及清理构建产物。掌握Ant的基本使用,能帮助...
Ant使用小结 用Ant完成生成javadoc的任务 ...
总结起来,Apache Ant 1.6.5是一个为Java项目提供构建功能的工具,尤其适用于Windows平台。通过解压缩此ZIP文件并配置环境变量,用户可以利用Ant执行各种项目构建任务。详细的使用方法和特性可通过提供的readme.txt...
ANT 命令总结 Apache Ant 是一个基于 Java 的生成工具,用于将源代码和其他输入文件转换为可执行文件的形式。ANT 的配置和常用命令是软件开发中不可或缺的一部分。 ANT 是什么? Apache Ant 是一个基于 Java 的...
### Ant详细配置总结 #### 一、Ant简介与特点 Ant是Apache旗下的一款强大的构建工具,主要用于Java项目的自动化构建过程,如编译、测试、打包、部署等操作。它的核心优势在于其高度的可定制性和灵活性,使得开发者...
这个任务可能使用Ant的内置`<echoproperties>`任务显示当前项目的属性,或者自定义脚本输出帮助文本。 3. `jar`任务:Ant提供了强大的打包功能,`<jar>`任务就是其中之一。它用于将编译后的类文件打包成JAR(Java ...