您的位置:首页 > 其它

[ant]非常简单的ant使用教程 + 实践

2011-02-24 11:18 423 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: