六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 48|回复: 0

ant例子xml

[复制链接]

升级  52%

6

主题

6

主题

6

主题

童生

Rank: 1

积分
26
 楼主| 发表于 2013-1-15 03:00:04 | 显示全部楼层 |阅读模式
<?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">
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表