rss· 投稿· 设为首页· 加入收藏· 繁體版
当前位置: 火魔网 » 程序开发 » Java综合

改进的Ant配置文件模板

  经过大约一个星期的不懈努力,基本掌握了Ant较为常用的知识点,在此附上在学习过程中所编写的Ant配置文件的标准模板,拿来与喜欢使用Ant的朋友分享(注:“########”之后的部分是有关Ant的常用task的测试代码)。

<?xml version="1.0" encoding="UTF-8"?>
<project name="AutoLogin" default="compile">
 <property name="webapp.name" value="AutoLogin" />

 <!-- tomcat的安装路径-->
 <property name="catalina.home" value="D:\Downloads\Tomcat6.0\apache-tomcat-6.0.18" />
 <!--src.dir  :源文件路径 -->
 <property name="src.dir" value="src" />
 <!-- 编译所需要的jar包的存放目录-->
 <property name="lib.dir" value="${basedir}/WEB-INF/lib" />
 <!--build.classes:class 文件 存放目录 -->
 <property name="class.dir" value="${basedir}/WEB-INF/classes" />
 <!-- tomcat 的应用发布路径-->
 <property name="webapps.dir" value="${catalina.home}/webapps" />
 <!-- jsp 页面文件-->
 <property name="ui.dir" value="jsp" />
 <!-- doc.dir :API文档的存放目录 -->
 <property name="docs.dir" value="docs/api" />
 <!-- reports.dir :Junit测试报告的存放目录-->
 <property name="reports.dir" value="reports" />

 <!-- **********************************set classpath********************************** -->
 <!-- 设置环境变量,把编译所需要的jar包引入-->
 <path id="compile.classpath">
  <fileset dir="${catalina.home}/lib">
   <include name="*.jar" />
  </fileset>
  <fileset dir="${lib.dir}">
   <include name="*.jar" />
  </fileset>
 </path>

 <!-- **********************************init********************************** -->
 <!-- 初始化,创建各种目录 -->
 <target name="init">
  <mkdir dir="${lib.dir}" />
  <mkdir dir="${ui.dir}" />
  <mkdir dir="${reports.dir}"/>
 </target>

 <!-- **********************************clean class********************************** -->
 <!-- 清除 编译的文件 -->
 <target name="clean" description="Delete old build and dist directories">
  <delete dir="${class.dir}" includes="**/*.class" />
 </target>

 <!-- **********************************compile java********************************** -->
 <!-- 编译java文件 -->
 <target name="compile" description="Compile Java sources" depends="clean">
  <mkdir dir="${class.dir}" />
  <javac srcdir="${src.dir}" destdir="${class.dir}">
   <classpath refid="compile.classpath" />
  </javac>

  <copy todir="${class.dir}">
   <fileset dir="${src.dir}" excludes="**/*.java" />
  </copy>
 </target>

 <!-- 打成jar包 -->
 <target name="jar" depends="compile">
  <jar destfile="${src.dir}/project.jar" basedir="${class.dir}" excludes="**/*Test.class">
   <manifest>
    <!-- Who is building this jar -->
    <attribute name="Build-By" value="${user.name}"/>
    <!-- Information about project itself -->
    <attribute name="Implementation-Vendor" value="XingShi inc."/>
    <attribute name="Implementation-Title" value="GreatProduct"/>
    <attribute name="Implementation-Version" value="1.0.0bata2"/>
    <!-- details -->
    <!--
          <section name="...">
           <attribute name="Sealed" value="false"/>
          </section>
           -->
   </manifest>
  </jar>
 </target>
 
 <!-- **********************************generate javadoc********************************** -->
 <!-- 生成API文档 -->
 <target name="doch" description="Product api docs">
  <mkdir dir="${docs.dir}"/>
  <javadoc charset="gb2312" encoding="gb2312" destdir="docs/api" author="true" version="true"
   use="true" windowtitle="AutoLogin application api" classpathref="compile.classpath">
   <fileset dir="${src.dir}" defaultexcludes="yes">
    <include name="com/xingbang/servlet/**"/>
    <exclude name="com/xingbang/test/**"/>
   </fileset>
   <!-- Another alternative
   <packageset dir="${src.dir}" defaultexcludes="yes">
    <include name="com/xingbang/servlet/**"/>
    <exclude name="com/xingbang/test/**"/>
   </packageset>
    -->
   
   <doctitle><![CDATA[<h1>AutoLogin</h1>]]></doctitle>
   <bottom><![CDATA[<i>Copyright &#169; 2010 XingShi Corp. All Rights Reserved.</i>]]></bottom>
   <tag name="todo" scope="all" description="To do:"/>
   <group title="Responsibles for main logic" packages="com.xingbang.servlet.a*" />
   <group title="Some useful listener" packages="com.xingbang.servlet.l*" />
  </javadoc>
 </target>

 <!-- **************************Executes the specified java file************************** -->
 <!-- 执行指定的java文件 -->
 <target name="Main-class" depends="compile">
  <java classname="com.xingbang.servlet.autologin.MainExe" classpath="${class.dir}"
   classpathref="compile.classpath" />
 </target>
 
 <!-- **************************junit test************************** -->
 <!-- Junit单元测试 -->
 <target name="junitrun" depends="init,compile" description="Run junit teset">
  <!-- Delete 'old' junit test reports -->
  <delete includeemptydirs="true">
   <fileset dir="${reports.dir}" includes="**/*" />
  </delete>
  
  <junit printsummary="yes" haltonfailure="yes" failureproperty="functional.tests.failed">
   <classpath>
    <pathelement path="${class.dir}"/>
    <path refid="compile.classpath" />
   </classpath>
   
   <formatter type="plain"/>
   
   <test name="com.xingbang.junit.examples.CalculatorTest" haltonfailure="no" outfile="${reports.dir}/result">
    <formatter type="xml"/>
   </test>
   
   <batchtest fork="true" todir="${reports.dir}">
    <fileset dir="${src.dir}">
     <include name="com/xingbang/junit/**/*Test*.java"/>
     <exclude name="com/xingbang/junit/**/TestAll*.java"/>
    </fileset>
   </batchtest>
  </junit>
  
  <fail if="functional.tests.failed" message="One or more tests failed. See test output for details"/>
 </target>
 
 <!-- **********************************deploy   webapp********************************** -->
 <!-- 部署到tomcat-->
 <target name="deploy" description="Install application to servlet container" depends="compile">
  <delete dir="${webapps.dir}/${webapp.name}" />
  <war destfile="${webapps.dir}/${webapp.name}.war" webxml="${basedir}/WEB-INF/web.xml">
   <fileset dir="${ui.dir}" />
   <lib dir="${lib.dir}" />
   <classes dir="${class.dir}" />
  </war>
 </target>

 <!-- **********************************start  web server********************************** -->
 <!-- 启动tomcat -->
 <target name="startserver" description="Start  web server">
  <exec dir="${catalina.home}/bin" executable="cmd.exe">
   <env key="CATALINA_HOME" path="${catalina.home}" />
   <arg value="/c startup.bat" />
  </exec>
 </target>

 <!-- **********************************stop  web server********************************** -->
 <!-- 停止tomcat-->
 <target name="stopserver" description="Stop  web server">
  <exec dir="${catalina.home}/bin" executable="cmd.exe">
   <env key="CATALINA_HOME" path="${catalina.home}" />
   <arg value="/c shutdown.bat" />
  </exec>
 </target>

 <!-- **********************************start work**********************************  -->
 <target name="start" description="Clean build and dist directories, then compile">
  <ant target="deploy" />
  <ant target="startserver" />
 </target>

 <!-- **********************************reload  web server********************************** -->
 <!-- 重启tomcat -->
 <target name="reload" description="reload  web server">
  <ant target="stopserver">
  </ant>
  <sleep seconds="2">
  </sleep>
  <ant target="start">
  </ant>
 </target>

 <!-- ********************************delete deployment*********************************** -->
 <!-- 删除部署 -->
 <target name="undeploy" description="delete deployment">
  <delete dir="${webapps.dir}/${webapp.name}" />
  <delete file="${webapps.dir}/${webapp.name}.war" />
 </target>
 
 <!-- ######################Tests of common tasks######################### -->
 
 <!-- 测试delete task(不删除build/folder文件目录自身) -->
 <target name="delete" description="Delete the specified directory.">
  <delete includeemptydirs="true">
   <fileset dir="build/folder" includes="**/*" />
  </delete>
 </target>
 
 <!-- 测试available task && echo task && fail task -->
 <target name="available" description="Test the usage of available task">
  <echo level="info" message="Usage of available task." />
  <available file="${src.dir}/log4j.properties" property="hasExists" />
  <fail unless="hasExists" message="log4j.properties does't exist."/>
  <!--
  <fail if="hasExists" message="log4j.properties does exist."/>
   -->
 </target>
 
 <!-- 测试copy task -->
 <target name="copyer" description="Test the usage of copy task">
  <copy todir="build/folder">
   <fileset dir="reports" excludes="**/*.xml : **/*result.txt" />
  </copy>
 </target>
 
 <!-- 测试move task -->
 <target name="mover" description="Test the usage of move task">
  <move todir="build/new">
   <!-- <fileset dir="build/folder" includes="**/*" /> -->
   <filelist dir="build/folder">
    <file name="TEST-com.xingbang.junit.examples.ParameterTest.txt"/>
    <file name="TEST-com.xingbang.junit.examples.PrivateMethodAccessTest.txt"/>
   </filelist>
  </move>
 </target>
 
 <!-- 测试replace task -->
 <target name="replacer" description="Test tje usage of replace task">
  <replace file="${src.dir}/dir.txt" token="目录" value="Directory" />
 </target>
 
 <!-- 测试core selector types -->
 <target name="selector" depends="delete" description="Test the usage of selector types">
  <copy todir="build/folder">
   <fileset dir="reports" includes="**/*.txt : **/*.xml">
    <!-- Contains selector
    <contains text="standard output" casesensitive="false"/>
     -->
    
    <!-- Date selector -->
    <date datetime="03/06/2010 06:00 PM" when="after"/>
    
    <!-- Filename selector
    <filename name="**/*.xml"/>
    -->
    
    <!-- Size selector
    <patternset>
     <include name="**/*.txt : **/*.xml"/>
    </patternset>
    -->
    <!-- Select all TXT or XML files that are larger than 4096 bytes -->
    <!-- <size value="4" units="Ki" when="more"/> -->
    
    <!-- Type selector
    <type type="file"/>
    -->
   </fileset>
  </copy>
 </target>
</project>

顶一下
(0)
踩一下
(0)