方寸心间

一路走,十年不回头

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
build.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<project name="yybar" basedir="." default="build">
    
<!--Load properties file
    <property file="build.properties" />
    
-->

    
<!-- App name-dependent settings. -->
    
<property name="appname" value="${ant.project.name}" />
    
<property name="deploy.resin" value="D:/resin3.0.19/webapps" />
    
<property name="deploy.tomcat" value="D:/Program Files/Apache Software Foundation/Tomcat 6.0/webapps" />

    
<property name="src.dir" value="${basedir}/src" />
    
<property name="data.dir" value="${basedir}/data" />
    
<property name="lib.dir" value="${basedir}/lib" />
    
<property name="web.dir" value="${src.dir}/web" />
    
<property name="build.dir" value="${basedir}/build" />
    
<property name="dist.dir" value="${basedir}/dist" />
    
<property name="war.dir" value="${build.dir}/${appname}" />
    
<property name="webinf.dir" value="${war.dir}/WEB-INF" />
    
<property name="class.dir" value="${war.dir}/WEB-INF/classes" />
    
<property name="conf.dir" value="${src.dir}/conf" />
    
<property name="conf.classes" value="${src.dir}/conf/classes" />
    
<property name="conf.webinf" value="${src.dir}/conf/WEB-INF" />

    
<property name="warlib.dir" value="${war.dir}/WEB-INF/lib" />
    
<property name="war.file" value="${dist.dir}/${appname}.war" />

    
<property name="views.dir" value="${src.dir}/java/com/easou/${appname}/views" />
    
<property name="controller.dir" value="${src.dir}/java/com/easou/${appname}/controller" />
    
<property name="model.dir" value="${src.dir}/java/com/easou/${appname}/model" />
    
<property name="util.dir" value="${src.dir}/java/com/easou/${appname}/util" />
    
<property name="exception.dir" value="${src.dir}/java/com/easou/${appname}/exception" />

    
<property name="test" value="${basedir}/test" />
    
<property name="test.src" value="${test}/java" />
    
<property name="test.classesdir" value="${build.dir}/test/classes" />
    
<property name="test.libpath" value="${test}/lib" />
    
<property name="test.confdir" value="${test}/etc" />
    
<property name="test.reportdir" value="${test}/report" />

    
<tstamp>
        
<format property="build.date" pattern="yyyy-MM-dd HH:mm" />
    
</tstamp>

    
<path id="master-classpath" description="Master CLASSPATH for this script">
        
<fileset dir="${lib.dir}">
            
<include name="*.jar" />
        
</fileset>
        
<pathelement path="${class.dir}" />
    
</path>

    
<path id="test.lib">
        
<fileset dir="${test.libpath}">
            
<include name="**/*.jar" />
        
</fileset>
    
</path>

    
<path id="lib.total">
        
<path refid="master-classpath" />
        
<path refid="test.lib" />
    
</path>

    
<target name="init" description="Setup for build script">
        
<mkdir dir="${class.dir}" />
        
<mkdir dir="${warlib.dir}" />
        
<mkdir dir="${conf.dir}" />
        
<mkdir dir="${conf.classes}" />
        
<mkdir dir="${conf.webinf}" />
        
<mkdir dir="${web.dir}" />
        
<mkdir dir="${lib.dir}" />
        
<mkdir dir="${data.dir}" />
        
<mkdir dir="${views.dir}" />
        
<mkdir dir="${model.dir}" />
        
<mkdir dir="${controller.dir}" />
        
<mkdir dir="${util.dir}" />
        
<mkdir dir="${exception.dir}" />
        
<mkdir dir="${dist.dir}" />
    
</target>

    
<!-- ======================================================= -->
    
<!-- Convert native properties files to ascii format.       -->
    
<!-- ======================================================= -->
    
<target name="unicode">
        
<delete>
            
<fileset dir="${conf.classes}" includes="resources*.properties" />
        
</delete>
        
<native2ascii encoding="gb2312" src="${conf.classes}" dest="${conf.classes}" includes="resources*.src" ext=".properties" />
    
</target>

    
<target name="updateweb" depends="init" description="Copies web related files to WAR directory">
        
<copy todir="${war.dir}">
            
<fileset dir="${web.dir}">
                
<include name="**/*" />
            
</fileset>
        
</copy>
        
<copy todir="${war.dir}">
            
<fileset dir="${views.dir}" />
        
</copy>
    
</target>

    
<target name="updatelib" depends="init" description="Copies JAR files to WAR directory">
        
<copy todir="${warlib.dir}">
            
<fileset dir="${lib.dir}">
                
<exclude name="*junit*.jar" />
                
<exclude name="*spring-mock*.jar" />
            
</fileset>
        
</copy>
    
</target>

    
<target name="deleteconfig" depends="init" description="Deletes config files from WAR directory">
        
<delete failonerror="false">
            
<fileset dir="${war.dir}">
                
<include name="**/*.properties" />
                
<include name="**/*.xml" />
            
</fileset>
        
</delete>
    
</target>

    
<target name="updateconfig" depends="init,unicode" description="Copies configuration files to WAR directory">
        
<copy todir="${class.dir}">
            
<fileset dir="${conf.classes}">
                
<include name="**/*.xml" />
                
<include name="**/*.properties" />
                
<include name="**/*.src" />
            
</fileset>
        
</copy>
        
<copy todir="${webinf.dir}" preservelastmodified="true">
            
<fileset dir="${conf.webinf}">
                
<include name="**/*.xml" />
                
<include name="**/*.tld" />
            
</fileset>
        
</copy>
    
</target>

    
<!-- ======================================================= -->
    
<!-- Compile all classes.                                    -->
    
<!-- ======================================================= -->
    
<target name="compile" depends="init" description="Compiles .java files to WAR directory">
        
<javac srcdir="${src.dir}" destdir="${class.dir}" encoding="utf-8" debug="on" deprecation="yes" includes="**" optimize="on" failonerror="true">
            
<classpath refid="master-classpath" />
        
</javac>
    
</target>

    
<target name="build" depends="compile,updateweb,updateconfig,updatelib" />

    
<target name="rebuild" depends="clean,compile,updateweb,updateconfig,updatelib" />

    
<target name="dist" depends="rebuild" description="Assembles WAR file">
        
<war destfile="${war.file}" webxml="${conf.webinf}/web.xml">
            
<fileset dir="${war.dir}">
                
<include name="**/*.*" />
                
<exclude name="**/web.xml" />
                
<exclude name="**/test/*.class" />
            
</fileset>
        
</war>
    
</target>

    
<target name="deploy" depends="dist" description="Deploys WAR file to deploy.dir">
        
<delete failonerror="true" dir="${deploy.resin}/${appname}" />
        
<copy file="${war.file}" todir="${deploy.resin}" />
    
</target>

    
<!-- ======================================================= -->
    
<!-- Install targets.                                                                               -->
    
<!-- ======================================================= -->
    
<target name="resininstall">
        
<copy todir="${deploy.resin}/${appname}">
            
<fileset dir="${war.dir}" />
        
</copy>
    
</target>

    
<target name="resin" depends="updateweb, updatelib, updateconfig, resininstall" />

    
<target name="tomcatinstall">
        
<copy todir="${deploy.tomcat}/${appname}">
            
<fileset dir="${war.dir}" />
        
</copy>
    
</target>

    
<target name="tomcat" depends="updateweb, updatelib, updateconfig, tomcatinstall" />

    
<!-- ======================================================= -->
    
<!-- Clean up various files and directories.                 -->
    
<!-- ======================================================= -->

    
<target name="clean" description="Deletes files from WAR directory">
        
<delete failonerror="false">
            
<fileset dir="${war.dir}">
                
<include name="**/*.*" />
            
</fileset>
        
</delete>
        
<delete failonerror="false">
            
<fileset dir="${dist.dir}">
                
<include name="**/*" />
            
</fileset>
        
</delete>
        
<delete failonerror="false">
            
<fileset dir="${dist.dir}">
                
<include name="**/*" />
            
</fileset>
        
</delete>
    
</target>

    
<!-- ======================================================= -->
    
<!-- Assemble WAR module.                                    -->
    
<!-- ======================================================= -->
    
<target name="unpackwar" depends="compile, unicode, updateweb, updatelib, updateconfig" />

    
<!-- 
    <target name="test" depends="unpackwar">
        printsummary属性为true会将测试的结果简单的显示出来 
        <junit printsummary="true" showoutput="yes" filtertrace="false">
            <classpath refid="master-classpath" />
            batchtest元素定义测试文件以运行(其类名称以Test结尾)
            <batchtest fork="yes">
                <formatter type="plain" />
                <fileset dir="${class.dir}">
                    <include name="**/*Test.class" />
                </fileset>
            </batchtest>
        </junit>
    </target>
    
-->

    
<!-- ======================================================= -->
    
<!-- Compile all testsuite classes.                          -->
    
<!-- ======================================================= -->
    
<target name="testcompile">
        
<mkdir dir="${test.classesdir}" />
        
<copy todir="${test.classesdir}">
            
<fileset dir="${test.confdir}" includes="*.properties" />
            
<fileset dir="${conf.classes}" includes="*.*" excludes="spring.properties" />
        
</copy>
        
<javac encoding="utf-8" debug="on" deprecation="yes" destdir="${test.classesdir}" includes="**" optimize="on" srcdir="${test.src}">
            
<classpath refid="lib.total" />
            
<classpath>
                
<pathelement location="${class.dir}" />
            
</classpath>
        
</javac>
    
</target>

    
<!-- ======================================================= -->
    
<!-- Batch Test                                                -->
    
<!-- ======================================================= -->
    
<target name="testAll" depends="unpackwar, testcompile">
        
<!--ant junit -->
        
<mkdir dir="${test.reportdir}" />
        
<junit printsummary="no" fork="yes" haltonfailure="off">
            
<classpath>
                
<pathelement location="${class.dir}" />
                
<pathelement location="${test.classesdir}" />
                
<pathelement location="${conf.webinf}" />
                
<!-- strutsTest must require /WEB-INF/web.xml in classpath -->
                
<pathelement location="${war.dir}" />
            
</classpath>
            
<classpath refid="master-classpath" />
            
<classpath refid="test.lib" />
            
<formatter type="xml" />
            
<formatter type="plain" usefile="no" />
            
<test name="com.easou.yybar.AllTests" todir="${test.reportdir}" />
            
<!--
                <batchtest todir="${test.reportdir}">
                    <fileset dir="${test.classesdir}">
                        <include name="**/*Test.class" />
                        <exclude name="**/*TestCase.class" />
                        <exclude name="**/*$*.class" />
                    </fileset>
                </batchtest>
                
-->
        
</junit>
    
</target>

    
<target name="test-reports" description="Generate test reports">
        
<junitreport todir="${test.reportdir}">
            
<fileset dir="${test.reportdir}">
                
<include name="TEST-*.xml" />
            
</fileset>
            
<report format="noframes" todir="${test.reportdir}" />
        
</junitreport>
    
</target>

</project>


其目录结构如下:

posted on 2008-07-04 11:47  方寸心间  阅读(514)  评论(0编辑  收藏  举报