http://blog.csdn.net/cm4ever/archive/2005/02/28/305559.aspx
一个项目目录的常用方式:
MyProject <dir>
|--lib <dir> --库目录
|--classes <dir> --目的文件目录
|--src <dir> --源文件目录
|--doc <dir> --api文档目录
|--build.xml
这样,你尽管把想要的.jar文件丢到lib目录就可以了,然后如果像我一样懒的话,用下面的build.xml就可以编译了。
----------
<project name="hellworld"basedir="./" default="c">
<property name="appname" value="helloworld" />
<property name="base" value="." />
<property name="src" value="src" />
<property name="build" value="classes" />
<property name="myclasspath" value="${build}" />
<path id="libpath">
<fileset dir="lib/">
<include name="**/*.jar"/>
</fileset>
</path>
<target name="c" depends="">
<javac classpath="${myclasspath}" srcdir="${src}" destdir="${build}" classpathref="libpath"/>
</target>
</project>
----------
说明:
第一段定义路径p,加入lib下所有.jar文件。
第二段调用javac,指定classpath为前面定义的p,把src目录下的所有.java文件编译,成功后把.class文件放入classes目录。
运行ant的方式:
打开命令行窗口,进入build.xml所在目录,输入ant
更多知识,请参考
http://ant.apache.org下载ant并解压缩后,打开ant/docs/index.html, 在菜单中选择Manual->Ant Tasks->Core Tasks学习其他核心任务的用法
下载ant并解压缩后,打开ant/docs/index.html, 在菜单中选择Manual->Ant Tasks->Core Tasks学习其他核心任务的用法
==============================================
build.xml 配置:
<project name="bookstore0" default="about" basedir=".">
<!-- name为指定工程的名字;default指定工程默认的target元素,运行ant时如果不指定target则运行default属性指定的target;
basedir属性指定工程的基路径,如果设置为".",就标识工程的基路径为build.xml文件所在的路径 -->
<target name="init"><!--完成初始化工作-->
<tstamp/>
<property name="build" value="build" />
<property name="src" value="src" />
<property environment="myenv" /><!--设置环境变量属性myenv,通过它可以访问系统环境变量。例如:${myenv.CATALINA_HOME}代表了CATALINA_HOME系统环境变量-->
<property name="servletpath" value="${myenv.CATALINA_HOME}/common/lib/servlet-api.jar" />
<property name="mysqlpath" value="WEB-INF/lib/mysqldriver.jar" />
<!--在build.xml文件其他地方使用属性时的格式为${属性名}-->
<!--mkdir任务的dir属性指定需要创建的目录,如果是相对路径则取决于project元素的basedir属性-->
<mkdir dir="${build}" />
<mkdir dir="${build}/WEB-INF" />
<mkdir dir="${build}/WEB-INF/classes" />
<copy todir="${build}" ><!--todir指定把文件copy到哪个目录 -->
<fileset dir="${basedir}" ><!--dir指定从哪个目录copy -->
<include name="*.jsp" /><!--include指定需要拷贝哪些文件 -->
<include name="*.bmp" />
<include name="WEB-INF/**" /><!--表示需要拷贝WEB-INF目录下的所有的文件、子目录及子目录下的文件;
如果是<include name="WEB-INF/*.*"/>,表示只需拷贝WEB-INF目录下的所有的文件,不包含子目录及子目录下的文件 -->
<exclude name="build.xml" /><!--exclude指定不需要拷贝哪些文件 -->
</fileset>
</copy>
</target>
<!--compile target用来编译java源程序-->
<target name="compile" depends="init"><!-- depends指定在执行本target之前必须完成的target,如:要执行compile必须完成init-->
<!--srcdir指定源文件存放目录,destdir指定生成的CLASS存放目录,其中目录结构必须保证与package语句一致-->
<javac srcdir="${src}" destdir="${build}/WEB-INF/classes" classpath="${servletpath}:${mysqlpath}">
</javac>
</target>
<!-- 通过war任务为工程 应用打包-->
<target name="bookstorewar" depends="compile">
<!--warfile指定生成的war文件,webxml指定Web应用的web.xml文件-->
<war warfile="${build}/bookstore.war" webxml="${build}/WEB-INF/web.xml">
<lib dir="${build}/WEB-INF/lib"/>
<classes dir="${build}/WEB-INF/classes"/>
<fileset dir="${build}"/><!--指定把dir指定的目录下的所有文件都加入包中-->
</war>
</target>
<!-- echo任务用于想控制台输出文本,与在DOS下的echo命令相似-->
<target name="about" >
<echo>
This build.xml file contains targets
for building bookstore web application
</echo>
</target>
</project>
==================
一个最简单的build.xml
<project name="testBuild" default="compile" basedir=".">
<property file="build.properties"/>
<target name="init">
<mkdir dir="${dest.dir}" />
</target>
<target name="compile" depends="init">
<javac srcdir="${src.dir}" destdir="${dest.dir}"/>
<echo>Build into ${dest.dir}, successfully.</echo>
</target>
</project>
build.properties
dest.dir=D:/eclipse_egiro/workspace/CryptoApplet/build/
src.dir=D:/eclipse_egiro/workspace/CryptoApplet/src
Note: ${dest.dir} 中dest.dir 就是build.properties中的value