Ant build.xml

本文详细介绍了如何使用Ant构建工具来设置项目的构建流程,包括定义属性、构建路径、目标任务等,并提供了具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<project name="encrypt" default="help" basedir=".">
<!--
  All properties should be defined in this section.Any host-specific properties should be defined
  in the build.properties file.
  In this app,the following properties are defined in build.properties:
  1.tomcat.home === the home directory of your Tomcat installation
  2.webapps.home === the place to copy the war file to deploy it.
-->
<property file="build.properties"/>
<property name="app.home" value="."/>
<property name="app.name" value="application"/>
<property name="javadoc.pkg.top" value="encrypt"/>

<property name="src.home" value="${app.home}/src"/>
<property name="lib.home" value="${app.home}/lib"/>
<property name="classes.home" value="${app.home}/classes"/>
<property name="deploy.home" value="${app.home}/deploy"/>
<property name="doc.home" value="${app.home}/doc"/>
<property name="web.home" value="${app.home}/WebRoot"/>

<property name="build.home" value="${app.home}/build"/>
<property name="build.classes" value="${build.home}/WEB-INF/classes"/>
<property name="build.lib"  value="${build.home}/WEB-INF/lib"/>

<!--Compilatin Classpath-->
  <!--  This section creates the classpath for compilation-->
  <path id="compile.classpath">
  <!--The lib files for this application-->
  <fileset dir="${lib.home}">
    <include name="*.jar"/>
    <include name="*.zip"/>
  </fileset>
  
  <!--All files/jars that Tomcat makes available-->
  <fileset dir="${tomcat.home}/common/lib">
    <include name="*.jar"/>
  </fileset>
  <pathelement location="${tomcat.home}/common/classes"/>
  </path>
<!--==========help targe==========-->
  <!--This is the default ant target executed if no target is specified.
    This helps avoid user just typed 'ant' and runing a default target
    that may not do what they are anticipating
  
-->
  <target name="help">
    <echo message="Please specify a target![usage:ant <targetname>]"/>
    <echo message="Here is a list of possible targets:"/>
    <echo message=" clean-all .....Delete all dir,all.class and war files"/>
    <echo message=" prepare .....Create directories if required"/>
    <echo message=" compile .....Compiles source file"/>
    <echo message=" build .....Build war file form.class and other files"/>
    <echo message=" deploy .....Copy war files to the webapps directory"/>
    <echo message=" javadoc .....Generates javadoc for this application"/>
  </target>

<!--=========="clean-all" target==========-->
  <target name="clean">
    <delete dir="${build.home}"/>
    <delete dir="${classes.home}"/>
    <delete dir="${deploy.home}"/>
    
    <!--cannot delete directory if tomcat is runing-->
    <delete dir="${webapps.home}/${app.home}" failonerror="false"/>
    <delete dir="${webapps.home}/S{app.name}.war"/>
    
    <!--delete javadoc-->
    <delete dir="${doc.home}"/>
  </target>
<!---==========="prepare" target===========-->
  <!-- This target is executed prior to any of the later targets
     to make sure the directories exist.It only creates them if
     they need to be created...
    Other,similar,preparation steps can be placed here
  
-->
  <target name="prepare">
    <echo message="Tomcat Home =${tomcat.home}"/>
    <echo message = "webapps Home = ${webapps.home}"/>
    
    <mkdir dir="${classes.home}"/>
    <mkdir dir="${deploy.home}"/>
    <mkdir dir="${doc.home}"/>
    <mkdir dir="${doc.home}/api"/>
    
    <mkdir dir="${build.home}"/>
    <mkdir dir="${build.home}/WEB-INF"/>
    <mkdir dir="${build.home}/WEB-INF/classes"/>
    <mkdir dir="${build.home}/WEB-INF/lib"/>
  </target>
  
<!--=========="compile" target==========-->
  <!--This only compiles java files that are newer
    than their corresponing.class files
  
-->
  <target name="compile" depends ="prepare">
    <javac srcdir="${src.home}" destdir="${classes.home}" debug="yes">
      <classpath refid = "compile.classpath"/>
    </javac>
  </target>

<!--============"build" target=============-->
  <!--This target builds the war file for the application by
    first building the directory structure of the application
    in ${build.home} and then creating the war file using the
    ant <war> task
  
-->
  <target name="build" depends="compile">
    <!--Copy all the wabapp content(jsp's,html,tld's,xml,etc...-->
    <copy todir="${build.home}">
      <fileset dir="${web.home}"/>
    </copy>
    
    <!--copy all java class files-->
    <copy todir="${build.home}/WEB-INF/classes">
      <fileset dir="${classes.home}"/>
    </copy>
    
    <!--Now, copy all the properties files,etc that go on the classpath-->
    <copy todir="${build.home}/WEB-INF/classes">
      <fileset dir="${src.home}">
        <include name="**/*.properties"/>
        <include name="**/*.prop"/>
      </fileset>
    </copy>
    
    <!--Now,copy all the jar files we need-->
    <copy todir="${build.home}/WEB-INF/lib">
      <fileset dir="${lib.home}"/>
    </copy>
    
    <!--create the <war> file-->
    <jar jarfile="${deploy.home}/${app.name}.war" basedir="${build.home}"/>
  </target>
<!--================"deploy" target============-->
  <!-- This target simply copies the war file from the deploy
    directory into the Tomcat webapps directory.
  
-->
  <target name="deploy" depends="build">
    
    <!--copy the contents of the build directory-->
    <copy todir="${webapps.home}" file="${deploy.home}/${app.name}.war"/>
  </target>

<!--================="doc" target=========-->
  <!-- This task create javadoc.It is dependent upon only the 'compile' target
    it is not executed in a normal build.As a result,the target needs to
    be run on its own.
  
-->
  <target name="javadoc" depends="compile">
    <javadoc sourcepath="${src.home}" destdir="${doc.home}/api"
        packagenames="${javadoc.pkg.top}.*"/>
  </target>
</project>
    

转自:http://lemonmilk.blog.51cto.com/499577/155756

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值