﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-ALin's Space!</title><link>http://www.blogjava.net/e-ville/</link><description>Hello</description><language>zh-cn</language><lastBuildDate>Thu, 07 May 2026 03:56:04 GMT</lastBuildDate><pubDate>Thu, 07 May 2026 03:56:04 GMT</pubDate><ttl>60</ttl><item><title>ANT buildfile快速参考！</title><link>http://www.blogjava.net/e-ville/archive/2007/02/11/99258.html</link><dc:creator>ALin</dc:creator><author>ALin</author><pubDate>Sun, 11 Feb 2007 09:11:00 GMT</pubDate><guid>http://www.blogjava.net/e-ville/archive/2007/02/11/99258.html</guid><wfw:comment>http://www.blogjava.net/e-ville/comments/99258.html</wfw:comment><comments>http://www.blogjava.net/e-ville/archive/2007/02/11/99258.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/e-ville/comments/commentRss/99258.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/e-ville/services/trackbacks/99258.html</trackback:ping><description><![CDATA[
		<font face="Courier New">&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br /><font color="#008000">&lt;!-- =============================================================== --&gt;<br />&lt;!-- ANT buildfile快速参考 --&gt;<br />&lt;!-- ALin 2006-12-30 14:20 --&gt;<br />&lt;!-- =============================================================== --&gt;</font><br />&lt;project default="help" basedir="." name="Cabin"&gt;<br />    <font color="#008000">&lt;!-- project的描述，可以省略                                     --&gt;</font><br />    &lt;description&gt;Ant Buildfile参考&lt;/description&gt;<br /><br />    <font color="#008000">&lt;!-- =========================================================== --&gt;<br />    &lt;!-- 项目相关的属性设置                                          --&gt;<br />    &lt;!-- =========================================================== --&gt;</font><br />    &lt;property environment="env"&gt;&lt;/property&gt;<font color="#008000">&lt;!-- 引用系统环境变量     --&gt;</font><br />    &lt;property name="app.nane" value="Cabin"&gt;&lt;/property&gt;<br />    &lt;property name="app.home" value="."&gt;&lt;/property&gt;<br />    &lt;property name="src.dir" value="${app.home}/src"&gt;&lt;/property&gt;<br />    &lt;property name="bin.dir" value="${app.home}/bin"&gt;&lt;/property&gt;<br />    &lt;property name="lib.dir" value="${app.home}/lib"&gt;&lt;/property&gt;<br />    &lt;property name="build.dir" value="${app.home}/build"&gt;&lt;/property&gt;<br />    &lt;property name="build.classes" value="${build.dir}/classes"/&gt;<br />    &lt;property name="deploy.dir" value="${app.home}/hello"/&gt;<br />    &lt;property name="deploy.classes" value="${deploy.dir}/WEB-INF/classes"/&gt;<br />    &lt;property name="TOMCAT_HOME" value="C:/Tomcat 5.5"/&gt;<br />    &lt;property name="Log4j.conf" value="log4j.configuration"&gt;&lt;/property&gt;<br />    &lt;property name="Log4j.file" value="log4j.properties"&gt;&lt;/property&gt;<br />    &lt;property name="JWSDP.HOME" value="C:/Sun/jwsdp-2.0"&gt;&lt;/property&gt;<br />    &lt;property name="JAXB.HOME" value="${JWSDP.HOME}/jaxb"&gt;&lt;/property&gt;<br />    <br />    &lt;property name="dtd.file1" value="datasource.dtd"&gt;&lt;/property&gt;<br />    &lt;property name="dtd.file2" value="bookList.dtd"&gt;&lt;/property&gt;<br /><br />    &lt;property name="jboss.jar.dir" <br />        value="D:/Program Files/jboss-4.0.2/client"&gt;&lt;/property&gt;<br />    <br />    <font color="#008000">&lt;!-- 定义XDoclet目录，后面用到其中的Task                        --&gt;</font><br />    &lt;property name="xdoclet.home" value="D:/Program Files/xdoclet-1.2.3"&gt;&lt;/property&gt;<br />    <br />    <font color="#008000">&lt;!-- 引用外部属性文件 --&gt;</font><br />    &lt;property file="db.properties"&gt;&lt;/property&gt;<br /><br />    <font color="#008000">&lt;!-- =========================================================== --&gt;<br />    &lt;!-- 编译和运行的classpath                                       --&gt;<br />    &lt;!-- =========================================================== --&gt;<br />    <font color="#000000">&lt;path id="compile.classpath"&gt;</font></font><br />        <font color="#008000">&lt;!-- The object files for this application --&gt;</font><br />        &lt;pathelement path="${build.classes}"/&gt;<br />        <br />        <font color="#008000">&lt;!-- 包括目录下的所有.jar和.zip文件                          --&gt;</font><br />        &lt;fileset dir="${TOMCAT_HOME}/common/lib"&gt;   <font color="#008000">&lt;!-- lib的目录   --&gt;</font><br />            &lt;include name="*.jar"/&gt;                 <font color="#008000">&lt;!-- 包括jar文件 --&gt;</font><br />            &lt;include name="*.zip"/&gt;<br />            &lt;exclude name="*.properties"/&gt; <font color="#008000">&lt;!-- 不包括properties文件 --&gt;</font><br />        &lt;/fileset&gt;<br /><br />        <font color="#008000">&lt;!-- 可以指定具体的某个.jar文件                              --&gt;</font><br />        &lt;fileset dir="${jboss.jar.dir}"&gt;<br />            &lt;include name="jbossall-client.jar"/&gt;<br />            &lt;include name="jnp-client.jar"/&gt;<br />        &lt;/fileset&gt;<br />        &lt;!-- 可以使用location代替path                                --&gt;<br />        &lt;pathelement path="${TOMCAT_HOME}/common/classes"/&gt;<br />    &lt;/path&gt;<br />    <br />    <font color="#008000">&lt;!-- XDoelet的lib目录 --&gt;</font><br />    &lt;path id="xdoclet.lib.path"&gt;<br />        &lt;fileset dir="${xdoclet.home}/lib"&gt;<br />            &lt;include name="*.jar"/&gt;<br />        &lt;/fileset&gt;<br />    &lt;/path&gt;<br />    <br />    <font color="#008000">&lt;!-- 定义Task，自己扩展的Ant Task也使用类似的语法进行定义       --&gt;</font><br />    &lt;target name="define-task"&gt;<br />        &lt;taskdef name="documentdoclet"<br />            classname="xdoclet.modules.doc.DocumentDocletTask"<br />            classpathref="xdoclet.lib.path"&gt;<br />        &lt;/taskdef&gt;<br />        &lt;taskdef name="ejbdoclet"<br />            classname="xdoclet.modules.ejb.EjbDocletTask"<br />            classpathref="xdoclet.lib.path"&gt;<br />        &lt;/taskdef&gt;<br />        &lt;taskdef name="webdoclet"<br />            classname="xdoclet.modules.web.WebDocletTask"<br />            classpathref="xdoclet.lib.path" /&gt;<br />    &lt;/target&gt;<br /><br />    <font color="#008000">&lt;!-- 创建目录，如果已经存在，则跳过                              --&gt;</font><br />    &lt;target name="prepare"&gt;<br />        &lt;mkdir dir="${src.dir}/META-INF"/&gt;<br />        &lt;mkdir dir="${bin.dir}/META-INF"/&gt;<br />        &lt;mkdir dir="${lib.dir}"/&gt;<br />    &lt;/target&gt;<br /><br />    <font color="#008000">&lt;!-- =========================================================== --&gt;<br />    &lt;!-- target设置                                                  --&gt;<br />    &lt;!-- =========================================================== --&gt;</font><br />    &lt;target name="compile" depends="prepare"&gt;<br />        &lt;javac srcdir="${src.dir}" destdir="${build.classes}" debug="no"&gt;<br />            <font color="#008000">&lt;!-- 引用上面的compile.classpath--&gt;</font><br />            &lt;classpath refid="compile.classpath"/&gt;<br />        &lt;/javac&gt;<br />    &lt;/target&gt;<br />    <br />    &lt;target name="copy" depends="compile"&gt;<br />        <font color="#008000">&lt;!-- 把${src.dir}下面的properties文件复制到${deploy.classes} --&gt;</font><br />        &lt;copy todir="${deploy.classes}"&gt;<br />            &lt;fileset file="${src.dir}/*.properties"/&gt;<br />        &lt;/copy&gt;<br />        <br />       <font color="#008000"> &lt;!-- 复制指定文件 --&gt;</font><br />        &lt;copy todir="${deploy.home}"&gt;<br />            &lt;fileset file="${build.classes}/${app.name}.jar"/&gt;<br />        &lt;/copy&gt;<br /><br />        <font color="#008000">&lt;!-- 把${build.classes}下面的文件复制到${deploy.classes}，包 --&gt;<br />        &lt;!-- 括.class文件，不包括.log文件，子目录中的文件也会复制。  --&gt;</font><br />        &lt;copy todir="${deploy.classes}"&gt;<br />            &lt;fileset dir="${build.classes}"&gt;<br />                &lt;include name="**/*.class"/&gt;<br />                &lt;exclude name="**/*.log"/&gt;<br />            &lt;/fileset&gt;<br />        &lt;/copy&gt;<br />        <br />        <font color="#008000">&lt;!-- 复制具体文件，覆盖已有的文件                            --&gt;</font><br />        &lt;copy file="src/META-INF/services.xml" <br />            tofile="${dest.dir.classes}/META-INF/services.xml" <br />            overwrite="true"/&gt;<br />    &lt;/target&gt;<br />    <br />    <font color="#008000">&lt;!-- 使用JDK的native2ascii工具执行本地化操作，转换编码。         --&gt;</font><br />    &lt;target name="locale"&gt;<br />        &lt;echo&gt;Target ----- [locale]&lt;/echo&gt;<br />        &lt;exec dir="${src.dir}" executable="native2ascii" os="Windows XP"&gt;<br />          &lt;arg <br />              line="-encoding GBK MessageResources_temp.properties <br />                  MessageResources_zh_CN.properties"/&gt;<br />        &lt;/exec&gt;<br />    &lt;/target&gt;<br /><br />    &lt;target name="clean"&gt;<br />       <font color="#008000"> &lt;!-- 删除${deploy.classes}下面的所有(.class)文件--&gt;</font><br />        &lt;delete&gt;<br />            &lt;fileset dir="${deploy.classes}"&gt;<br />                &lt;include name="*"/&gt; <font color="#008000">&lt;!-- 包括所有文件 --&gt;</font><br />                &lt;include name="*/**.class"/&gt;<br />                &lt;exclude name=""/&gt;  <font color="#008000">&lt;!-- ""表示不含任何文件 --&gt;</font><br />            &lt;/fileset&gt;<br />        &lt;/delete&gt;<br /><br />        <font color="#006400">&lt;!-- 删除${bin.dir}下面的.class、.xml、.properties、.log文件 --&gt;</font><br />        &lt;delete&gt;<br />            &lt;fileset dir="${bin.dir}"&gt;<br />                &lt;include name="**/*.class"/&gt;<br />                &lt;include name="**/*.xml"/&gt;<br />                &lt;include name="**/*.properties"/&gt;<br />                &lt;include name="**/*.log"/&gt;<br />            &lt;/fileset&gt;<br />        &lt;/delete&gt;<br /><br />        <font color="#008000">&lt;!-- 删除指定路径的文件 --&gt;</font><br />        &lt;delete file="${deploy.home}/${app.name}.jar"&gt;&lt;/delete&gt;<br />    &lt;/target&gt;<br />    <br />    <font color="#008000">&lt;!-- run依赖于compile和delete                                    --&gt;<br />    &lt;!-- 类似于在${bin.dir}下面执行java events.EventManager，只有    --&gt;<br />    &lt;!-- fork="YES"的情况下，dir属性才有效，使用classpathref引用前面 --&gt;<br />    &lt;!-- 的compile.classpath。                                       --&gt;<br />    &lt;!-- arg表示提供参数。运行方式：ant run -Daction=value           --&gt;<br />    &lt;!-- 其效果等同于：java events.EventManager value                --&gt;<br />    &lt;!-- 只不过不再需要用-cp指定classpath，非常方便。                --&gt;</font><br />    &lt;target name="run" depends="compile, clean"&gt;<br />        &lt;java classname="events.EventManager" fork="YES" dir="${bin.dir}"<br />            classpathref="compile.classpath"&gt;<br />            &lt;classpath path="${bin.dir}"/&gt;<font color="#008000">&lt;!-- classpath是必须的，否则会出现NoClassDefFoundError   --&gt;</font><br />            &lt;arg value="${action}"/&gt;  <font color="#008000"> &lt;!-- arg也不是必须的，1或多个 --&gt;</font><br />        &lt;/java&gt;<br />    &lt;/target&gt;<br />    <br />    <font color="#008000">&lt;!-- 使用exec可以运行可执行文件。dir表示在某个目录下执行；       --&gt;<br />    &lt;!-- executable表示可执行文件的路径，如果在path变量中，则只要    --&gt;<br />    &lt;!-- 可执行文件名即可，否则应该给出完整路径；os表示是什么系统；  --&gt;<br />    &lt;!-- 也可以通过arg提供参数。                                     --&gt;</font><br />    &lt;target name="xjc"&gt;<br />        &lt;echo&gt;Run xjc.bat and generate sources.&lt;/echo&gt;<br />        &lt;exec dir="${src.dir}" executable="${JAXB.HOME}/bin/xjc.bat" os="Windows XP"&gt;<br />          &lt;arg line="-dtd ${dtd.file2}"&gt;&lt;/arg&gt;<br />          <font color="#008000">&lt;!--arg value="${dtd}"&gt;&lt;/arg--&gt;&lt;!-- DTD file as run-time argument--&gt;</font><br />        &lt;/exec&gt;<br />    &lt;/target&gt;<br /><br />    <font color="#008000">&lt;!-- 把${bin.dir}下面的所有文件打包成：${app.name}.aar文件，并放 --&gt;<br />    &lt;!-- 置在${bin.dir}目录下。类似于在${bin.dir}目录下执行：        --&gt;<br />    &lt;!-- jar cvf Cabin.aar .                                         --&gt;</font><br />    &lt;target name="jar"&gt;<br />        &lt;jar basedir="${bin.dir}" destfile="${bin.dir}/${app.name}.aar"&gt;<br />        &lt;/jar&gt;<br />    &lt;/target&gt;<br /><br />    <font color="#008000">&lt;!-- 使用antcall调用其他的target  --&gt;</font><br />    &lt;target name="deploy"&gt;<br />        &lt;antcall target="jar"/&gt;<br />    &lt;/target&gt;<br />    <br />   <font color="#008000"> &lt;!-- 与用户交互输入：Input task。validargs用逗号隔开，中间不能有空格。 --&gt;<br />    &lt;!-- 输入必须是validargs之一，否则会循环要求输入。之后像使用已经定义的 --&gt;<br />    &lt;!-- 属性一样使用 --&gt;</font><br />    &lt;target name="input"&gt;<br />        &lt;input message="请选择一个Target"<br />               validargs="compile,jar,test"<br />               addproperty="my.input"/&gt;<br />        <br />        &lt;echo&gt;你输入的是：${my.input}&lt;/echo&gt;<br />    &lt;/target&gt;<br /><br />    &lt;target name="help"&gt;<br />        &lt;antcall target="show-img"/&gt;<br /><br />        <font color="#008000">&lt;!-- echo可以像下面这样用 --&gt;</font><br />        &lt;echo message="Hello, ANT!"&gt;&lt;/echo&gt;<br />        &lt;echo&gt;ant copy                  Copy files.&lt;/echo&gt;<br />        &lt;echo&gt;ant compile               Compile source files.&lt;/echo&gt;<br />        &lt;echo&gt;ant/ant build             Build.&lt;/echo&gt;<br />        &lt;echo&gt;ant run -Daction=store    Run client&lt;/echo&gt;<br />        &lt;echo&gt;ant clean                 Clean.&lt;/echo&gt;<br />        &lt;echo&gt;ant help                  Display this help message.&lt;/echo&gt;<br />        &lt;echo&gt;${env.JBOSS_HOME}&lt;/echo&gt;<font color="#008000">&lt;!-- 输出系统的JBOSS_HOME变量 --&gt;</font><br />        &lt;echo&gt;${url}&lt;/echo&gt;<font color="#008000">&lt;!-- 输出外部属性文件的属性 --&gt;</font><br />        &lt;echo&gt;ant input                 Input.&lt;/echo&gt;<br />    &lt;/target&gt;<br /><br />    &lt;target name="show-img"&gt;<font color="#008000">&lt;!-- 显示图片，URL好像不是这样设置的 --&gt;</font><br />        &lt;splash imageurl="tomcat-power.gif"<br />           useproxy="false"<br />           showduration="2000"/&gt;<br />        &lt;splash/&gt; <font color="#008000">&lt;!-- Splash images/ant_logo_large.gif from the classpath. --&gt;</font><br />    &lt;/target&gt;<br />&lt;/project&gt;<br /></font>
<img src ="http://www.blogjava.net/e-ville/aggbug/99258.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/e-ville/" target="_blank">ALin</a> 2007-02-11 17:11 <a href="http://www.blogjava.net/e-ville/archive/2007/02/11/99258.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>