`
e_ville
  • 浏览: 28050 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

ANT Buildfile快速参考

阅读更多
<?xml version="1.0" encoding="GBK"?>
<!-- =============================================================== -->
<!-- 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="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>
   

    <!-- =========================================================== -->
    <!-- 编译和运行的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>
   
    <!-- 创建目录,如果已经存在,则跳过                              -->
    <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>

    <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不是必须的   -->
            <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">
        </jar>
    </target>

    <target name="deploy">
    </target>

    <target name="help">
        <echo>ant copy                  Copy files.</echo>
        <echo>ant compile               Compile source files.</echo>
        <echo>ant/ant build             Build.</echo>
        <echo>ant run -Daction=store    Run client</echo>
        <echo>ant clean                 Clean.</echo>
        <echo>ant help                  Display this help message.</echo>
        <echo>${env.JBOSS_HOME}</echo><!-- 输出系统的JBOSS_HOME变量 -->
    </target>
</project>
分享到:
评论

相关推荐

    ANT 快速参考指南

    ### ANT 快速参考指南知识点解析 #### 一、Ant基础 **1.1 定义** Apache Ant 是一种基于 Java 和 XML 的自动化构建工具,主要用于编译、测试和部署 Java 应用程序。它使用 XML 文件来描述构建过程中的各种任务,...

    apache-ant-1.9.6-bin.zip

    1. **构建文件(Build File)**:Ant的核心是构建文件,通常命名为`build.xml`。这是一个XML文件,定义了构建过程的步骤,包括编译源代码、创建JAR或WAR文件、执行测试、部署应用等。 2. **任务(Tasks)**:Ant的...

    junit 和ant 中文教程.rar

    JUnit 和 Ant 是两个在Java开发中非常重要的工具。JUnit 是一个用于单元测试...这个教程“junit 和ant 中文教程”将帮助初学者快速掌握这两个工具的使用方法,无论是在学习还是实际工作中,都是非常有价值的参考资料。

    Ant入门实例

    【Ant入门实例】 Apache Ant,一个Java库和命令行工具,其任务是驱动构建过程。...提供的两个文件——"Ant入门教程.doc"和"Ant.pdf",可以作为深入学习Ant的参考资料,帮助你进一步理解其工作原理和实际应用。

    VanetMobiSim安装步骤

    如果命令行提示“Buildfile: build.xml does not exist! Build failed”,则表示Ant安装成功。 #### 三、VanetMobiSim的具体安装步骤 ##### Step 1: 下载与解压VanetMobiSim源码 - **下载**:下载VanetMobiSim的...

    Spark源代码在Eclipse中的部署、编译、运行.doc

    2. 在Ant面板右击,选择`Add Buildfiles`。 3. 从Spark项目的`build`目录中选择`build.xml`文件,点击`OK`。 4. 双击Ant面板中的`release`任务,等待编译完成。如果未显示“Build Successful”,可以再次尝试双击`...

    精通Hibernate

    具体修改哪些路径,请参考官方文档。 4. **Eclipse项目创建与构建**:在Eclipse中创建一个新的项目,并将下载的源文件导入。然后在`build.xml`文件上点击右键并选择执行Ant命令,生成`appFuse.war`文件。 5. **...

    Eclipse中文教程(pdf超清析版)

    可以在工作台中同时打开多个编辑器,并将它们并排显示,方便进行对比或参考。 **2.7.4 重新排列附加标签的视图** 对于带有标签的视图,可以通过拖拽来改变它们的顺序或位置。 **2.7.5 最大化** 可以最大化某个...

    Eclipse中文教程

    - **使用快速视图**:适用于快速浏览或参考文件内容的情景。 **2.11 比较** - **简单比较**:Eclipse提供了直观的比较工具,用于比较两个文件之间的差异。 - **了解比较**:用户可以深入了解文件之间的差异,包括...

    Eclipse入门

    - 可以同时打开多个编辑器,并将它们并排显示,便于进行代码比较或参考。 - **2.7.4 重新排列附加标签的视图** - 通过拖动标签,可以将视图移动到不同的位置。 - **2.7.5 最大化** - 用户可以最大化一个视图或...

    gradle-2.1-all.zip,完整版-解压即可使用

    2. 打开Android Studio,进入设置(`File` &gt; `Settings` on Windows/Linux 或者 `Android Studio` &gt; `Preferences` on macOS)。 3. 在设置界面,找到`Build, Execution, Deployment` &gt; `Gradle`。 4. 在`Gradle ...

    FFP - Flat File Parsing Library-开源

    `build.xml`是Ant构建工具的配置文件,用于构建和打包项目。`src`目录包含了源代码,开发者可以查看和学习FFP的实现细节。`doc`目录下可能包含库的用户手册和API文档,帮助开发者理解如何使用FFP。`lib`目录则可能...

    基于vue开发的前后端分离的后台管理项目,功能基本完善,直接搭建起来就可以用

    "黑马"可能是指该项目出自某个教学机构或课程,通常这类项目会提供详尽的学习资料和指导,帮助开发者快速上手。"后台管理"部分则意味着这个项目主要用于后台系统的操作和监控,可能包括用户管理、权限控制、数据统计...

    Netbeans培训.ppt

    - `build.xml`:Ant 构建脚本。 - **编辑 JSP 文件**: - 在“项目”窗口中,右键单击项目节点,选择“新建”&gt;“JSP File”。 - 输入文件名,例如:“index.jsp”。 - 编辑 JSP 文件,添加 HTML 和 JSP 标签。 ...

Global site tag (gtag.js) - Google Analytics