zoukankan      html  css  js  c++  java
  • 一个build.xml实例

    <?xml version="1.0"?>

    <project name="ssh" basedir="." default="usage">
          <property name="name" value="ssh"/>

          <property name="war.dir" value="war"/>
          <property name="src.dir" value="src"/>
          <property name="client.dir" value="client"/>
          <property name="build.dir" value=".classes"/>
          <property name="webcontent.dir" value="WebContent"/>
          <property name="prjlib.dir" value="lib"/>    
          <property name="webcontentlib.dir" value="${webcontent.dir}/WEB-INF/lib"/>
          <property name="weblib.dir" value="${war.dir}/WEB-INF/lib"/>
          <property name="dist.dir" value="dist"/>

          <property environment="env"/>
          <property name="tomcat.home" value="${env.CATALINA_HOME}"/>
          <property name="webapp.dist" value="${dist.dir}/webapps"/>   
          <path id="master-classpath">
              <fileset dir="${webcontentlib.dir}">
                  <include name="hibernate3.jar"/>
                  <include name="spring.jar"/>            
                  <include name="struts.jar"/>            
                  <include name="struts-el.jar"/>            
                  <include name="struts-menu-2.4.2.jar"/>            
                  <include name="acegi-security-1.0.2.jar"/>            
                  <include name="activation.jar"/>            
                  <include name="antlr.jar"/>            
                  <include name="antlr-2.7.6.jar"/>            
                  <include name="asm.jar"/>            
                  <include name="aspectjweaver-1.5.2.jar"/>            
                  <include name="cglib-2.1.3.jar"/>            
                  <include name="commons-beanutils.jar"/>            
                  <include name="commons-codec-1.3.jar"/>            
                  <include name="commons-collections.jar"/>            
                  <include name="commons-dbcp.jar"/>            
                  <include name="commons-digester.jar"/>            
                  <include name="commons-fileupload.jar"/>            
                  <include name="commons-io.jar"/>    
                  <include name="commons-lang.jar"/>            
                  <include name="commons-logging-1.1.jar"/>            
                  <include name="commons-pool.jar"/>            
                  <include name="commons-validator.jar"/>            
                  <include name="displaytag-1.1.jar"/>            
                  <include name="dom4j-1.6.1.jar"/>            
                  <include name="dwr.jar"/>            
                  <include name="ehcache-1.2.3.jar"/>            
                  <include name="itext-1.4.jar"/>            
                  <include name="jakarta-oro.jar"/>            
                  <include name="jstl.jar"/>            
                  <include name="jta.jar"/>            
                  <include name="log4j-1.2.11.jar"/>            
                  <include name="mail.jar"/>            
                  <include name="oscache-2.3.2.jar"/>            
                  <include name="mysql-connector-java-5.0.3-bin.jar"/>            
                  <include name="sitemesh-2.2.1.jar"/>            
                  <include name="standard.jar"/>            
                  <include name="urlrewrite-3.0-beta.jar"/>            
                  <include name="velocity-1.4.jar"/>            
                  <include name="velocity-tools-view-1.1.jar"/>            
              </fileset>
              <fileset dir="${prjlib.dir}/servletapi-2.3">
                  <include name="servletapi-2.3.jar"/>
              </fileset>        
          </path>   
          <target name="usage">
              <echo message=""/>
              <echo message="Spring JPetStore build file"/>
              <echo message="------------------------------------------------------"/>
              <echo message=""/>
              <echo message="Available targets are:"/>
              <echo message=""/>
              <echo message="clean      --> Clean output dirs"/>
              <echo message="build      --> Compile main Java sources and copy libraries"/>
              <echo message="warfile --> Build the web application archive"/>
              <echo message="all        --> Clean, build, warfile"/>
              <echo message=""/>
          </target>   
          <target name="clean" description="Clean output dirs (build, weblib, dist)">
              <delete dir="${build.dir}"/>
              <delete dir="${weblib.dir}"/>
              <delete dir="${war.dir}"/>
              <delete dir="${dist.dir}"/>
              <delete file="client/${name}.jar"/>
          </target>
          <target name="build" description="Compile main source tree java files into class files, generate jar files">
              <mkdir dir="${build.dir}"/>
              <mkdir dir="${war.dir}"/>

              <javac destdir="${build.dir}" source="1.3" target="1.3" debug="true"
                      deprecation="false" optimize="false" failonerror="true">
                  <src path="${src.dir}"/>
                  <classpath refid="master-classpath"/>
              </javac>

              <mkdir dir="${weblib.dir}"/>
              <mkdir dir="${war.dir}/WEB-INF/classes"/>

              <jar jarfile="${weblib.dir}/${name}.jar" compress="true" basedir="${build.dir}"/>

              <copy todir="${war.dir}" preservelastmodified="true">
                  <fileset dir="${webcontent.dir}">
                      <include name="**/**"/>
                      <include name="**.**"/>
                  </fileset>
              </copy>

              <copy todir="${war.dir}/WEB-INF/classes" preservelastmodified="true">
                  <fileset dir="${src.dir}">
                      <include name="*.xml"/>
                      <include name="**/*.properties"/>
                      <include name="**/*.vm"/>
                      <exclude name="**/.*"/>
                  </fileset>
              </copy>        
           
              <copy file="${weblib.dir}/${name}.jar" tofile="${client.dir}/${name}.jar"/>
          </target>

          <target name="dist" depends="warfile">
              <!--
                  Delegate to warfile target by depending on it. dist is just to offer
                  a generic target name across all Spring sample apps that may be used
                  for autobuilds testing.
              -->
          </target>

          <target name="warfile" depends="build" description="Build the web application archive">
              <mkdir dir="${dist.dir}"/>
              <war warfile="${dist.dir}/${name}.war" basedir="${war.dir}" webxml="${webcontent.dir}/WEB-INF/web.xml">
                  <include name="*"/>
                  <include name="images/**"/>
                  <include name="common/**"/>
                  <include name="decorators/**"/>
                  <include name="scripts/**"/>
                  <include name="styles/**"/>
                  <include name="WEB-INF/*.*"/>
                  <include name="WEB-INF/lib/**"/>
                  <include name="WEB-INF/pages/**"/>
                  <include name="WEB-INF/classes/**"/>
                  <exclude name="WEB-INF/web.xml"/>
              </war>
          </target>

          <target name="all" depends="clean,build,warfile" description="Clean,build,warfile"/>

    </project>

    在Eclipse中使用Ant

    Ant是Java平台下很棒的批处理命令运行程序,能很方便地自己主动完毕编译,測试,打包,部署等等一系列任务,大大提高开发效率。假设你如今还没有開始使用Ant,那就要赶快開始学习使用,使自己的开发水平上一个新台阶。

    Eclipse中已经集成了Ant,我们能够直接在Eclipse中运行Ant。

    曾经面建立的Helloproject为例,创建下面文件夹结构:



    新建一个build.xml,放在project根文件夹下。build.xml定义了Ant要运行的批处理命令。尽管Ant也能够使用其他文件名称,可是遵循标准能更使开发更规范,同一时候易于与别人交流。

    通常,src存放Java源文件,classes存放编译后的class文件,lib存放编译和执行用到的全部jar文件,web存放JSP等web文件,dist存放打包后的jar文件,doc存放API文档。

    然后在根文件夹下创建build.xml文件,输入下面内容:

    <?xml version="1.0"?>
    <project name="Hello world" default="doc">

    <!-- properies -->
         <property name="src.dir" value="src" />
         <property name="report.dir" value="report" />
         <property name="classes.dir" value="classes" />
         <property name="lib.dir" value="lib" />
         <property name="dist.dir" value="dist" />
    <property name="doc.dir" value="doc"/>

         <!-- 定义classpath -->
         <path id="master-classpath">
             <fileset file="${lib.dir}/*.jar" />
             <pathelement path="${classes.dir}"/>
         </path>

         <!-- 初始化任务 -->
         <target name="init">
         </target>

         <!-- 编译 -->
         <target name="compile" depends="init" description="compile the source files">
             <mkdir dir="${classes.dir}"/>
             <javac srcdir="${src.dir}" destdir="${classes.dir}" target="1.4">
                 <classpath refid="master-classpath"/>
             </javac>
         </target>

         <!-- 測试 -->
         <target name="test" depends="compile" description="run junit test">
             <mkdir dir="${report.dir}"/>
             <junit printsummary="on"
                     haltonfailure="false"
                     failureproperty="tests.failed"
                     showoutput="true">
                 <classpath refid="master-classpath" />
                 <formatter type="plain"/>
                 <batchtest todir="${report.dir}">
                     <fileset dir="${classes.dir}">
                         <include name="**/*Test.*"/>
                     </fileset>
                 </batchtest>
             </junit>
             <fail if="tests.failed">
             ***********************************************************
             ****   One or more tests failed!   Check the output ...   ****
             ***********************************************************
             </fail>
         </target>

         <!-- 打包成jar -->
         <target name="pack" depends="test" description="make .jar file">
          <mkdir dir="${dist.dir}" />
             <jar destfile="${dist.dir}/hello.jar" basedir="${classes.dir}">
                 <exclude name="**/*Test.*" />
                 <exclude name="**/Test*.*" />
             </jar>
         </target>

         <!-- 输出api文档 -->
         <target name="doc" depends="pack" description="create api doc">
          <mkdir dir="${doc.dir}" />
          <javadoc destdir="${doc.dir}"
                 author="true"
                 version="true"
                 use="true"
                 windowtitle="Test API">
                 <packageset dir="${src.dir}" defaultexcludes="yes">
                     <include name="example/**" />
                 </packageset>
                 <doctitle><![CDATA[<h1>Hello, test</h1>]]></doctitle>
                 <bottom><![CDATA[<i>All Rights Reserved.</i>]]></bottom>
                 <tag name="todo" scope="all" description="To do:" />
             </javadoc>
         </target>
    </project>

    以上xml依次定义了init(初始化),compile(编译),test(測试),doc(生成文档),pack(打包)任务,能够作为模板。

    选中Helloproject,然后选择“Project”,“Properties”,“Builders”,“New…”,选择“Ant Build”:

    填入Name:Ant_Builder;Buildfile:build.xml;Base Directory:${workspace_loc:/Hello}(按“Browse Workspace”选择project根文件夹),因为用到了junit.jar包,搜索Eclipse文件夹,找到junit.jar,把它拷贝到Hello/lib文件夹下,并加入到Ant的Classpath中:

    然后在Builder面板中钩上Ant_Build,去掉Java Builder:

    再次编译,就可以在控制台看到Ant的输出:

    Buildfile: F:/eclipse-projects/Hello/build.xml

    init:

    compile:
            [mkdir] Created dir: F:/eclipse-projects/Hello/classes
            [javac] Compiling 2 source files to F:/eclipse-projects/Hello/classes

    test:
            [mkdir] Created dir: F:/eclipse-projects/Hello/report
            [junit] Running example.HelloTest
            [junit] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.02 sec

    pack:
            [mkdir] Created dir: F:/eclipse-projects/Hello/dist
              [jar] Building jar: F:/eclipse-projects/Hello/dist/hello.jar

    doc:
            [mkdir] Created dir: F:/eclipse-projects/Hello/doc
          [javadoc] Generating Javadoc
          [javadoc] Javadoc execution
          [javadoc] Loading source files for package example...
          [javadoc] Constructing Javadoc information...
          [javadoc] Standard Doclet version 1.4.2_04
          [javadoc] Building tree for all the packages and classes...
          [javadoc] Building index for all the packages and classes...
          [javadoc] Building index for all classes...
          [javadoc] Generating F:/eclipse-projects/Hello/doc/stylesheet.css...
          [javadoc] Note: Custom tags that could override future standard tags:   @todo. To avoid potential overrides, use at least one period character (.) in custom tag names.
          [javadoc] Note: Custom tags that were not seen:   @todo
    BUILD SUCCESSFUL
    Total time: 11 seconds

    Ant依次运行初始化,编译,測试,打包,生成API文档一系列任务,极大地提高了开发效率。将来开发J2EE项目时,还可增加部署等任务。而且,即使脱离了Eclipse环境,仅仅要正确安装了Ant,配置好环境变量ANT_HOME=<Ant解压文件夹>,Path=…;%ANT_HOME%/bin,在命令行提示符下切换到Hello文件夹,简单地键入ant就可以。

  • 相关阅读:
    人工智能-实验一策略迭代和值迭代
    Lecture 3: Planning by Dynamic Programming
    Lecture 2: Markov Decision Processes
    Software Testing -- LAB02-Selenium上机实验
    数据结构-王道2017-第4章 树与二叉树-二叉树的遍历
    数据结构-王道2017-第4章 树与二叉树
    PHP-基础知识
    nginx的安装与配置
    在Linux上部署项目
    zk 命令
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4206561.html
Copyright © 2011-2022 走看看