zoukankan      html  css  js  c++  java
  • Jenkins进阶系列之——16一个完整的JENKINS下的ANT BUILD.XML文件

     2014-12-08:已不再担任SCM和CI的职位,Jenkins系列的文章如无必要不会再维护。

    网上看见的,确实很全,该有的基本都覆盖到了。自己拿来稍微改改就可以用了。

    注:property中的value是你自己的一些本地变量。需要改成自己的 

    <?xml version="1.0" encoding="UTF-8"?>
    <project name="genwar" default="all" basedir=".">
    
        <description> - Generate war file - </description>
    
        <property environment="env" />
    
        <property name="debuglevel" value="source,lines,vars" />
        <property name="target" value="1.6" />
        <property name="source" value="1.6" />
    
        <property name="output.dir" location="." />
        <property name="output.file" value="new_cos.war" />
    
        <property name="project.build" location="./build" />
        <property name="project.src" location="./src" />
        <property name="project.web" location="../web" />
        <property name="project.lib" location="./lib" />
        <property name="project.res" location="./res" />
        <property name="project.svc" location="./svc" />
    
        <property name="project.war" location="${project.build}/${output.file}" />
    
        <property name="tmp" location="${project.build}/tmp" />
        <property name="tmp.src" location="${tmp}/src" />
        <property name="tmp.lib" location="${project.web}/WEB-INF/lib" />
        <property name="tmp.bin" location="${tmp}/bin" />
        <property name="tmp.web" location="${tmp}/web" />
        <property name="tmp.classes" location="${tmp}/classes" />
    
        <property name="checkstyle.dir" location="./ant-task/checkstyle" />
        <property name="findbugs.dir" location="./ant-task/findbugs/home" />
        <property name="findbugs.report.dir" location="./ant-task/findbugs" />
        <property name="junit.reports.dir" value="./ant-task/junit/reports" />
        <property name="junit.class.dir" value="./ant-task/junit/bin" />
        <property name="junit.test.src" location="./test/java" />
        <property name="junit.test.resources" location="./test/resources" />
    
        <path id="javaclass.path">
            <pathelement path="${env.classpath}" />
            <pathelement path="${env.JBOSS_HOME}/server/all/lib/servlet-api.jar" />
            <pathelement path="${env.JBOSS_HOME}/server/all/lib/jsp-api.jar" />
            <fileset dir="${tmp.lib}" includes="*.jar" />
            <!-- <fileset dir="${project.lib}" includes="*.jar" /> -->
        </path>
    
        <path id="findbugs.path">
            <fileset dir="${findbugs.dir}" includes="**/*.jar" />
        </path>
    
        <target name="clean">
            <delete file="${output.dir}/${output.file}" failonerror="false" />
            <delete dir="${project.build}" failonerror="false" />
            <mkdir dir="${project.build}" />
        </target>
    
        <target name="all" depends="clean,buildwar" />
    
        <target name="initdir">
    
            <echo message="Init directories " />
    
            <delete dir="${tmp}" failonerror="false" />
    
            <mkdir dir="${tmp}" />
    
            <mkdir dir="${tmp.src}" />
            <copy todir="${tmp.src}">
                <fileset dir="${project.src}" excludes="**/.svn/**" />
            </copy>
    
            <mkdir dir="${tmp.lib}" />
            <!-- 
            <copy todir="${tmp.lib}">
                <fileset dir="${project.web}/WEB-INF/lib" includes="*.jar" />
            </copy>
            -->
    
            <mkdir dir="${tmp.bin}" />
    
            <mkdir dir="${tmp.web}/WEB-INF/lib" />
    
            <delete dir="${tmp.web}/WEB-INF/classes" failonerror="false" />
            <mkdir dir="${tmp.web}/WEB-INF/classes" />
    
        </target>
    
        <target name="compilejava" depends="initdir">
            <echo message="Compiling java code " />
    
            <javac debug="true" debuglevel="${debuglevel}" destdir="${tmp.bin}" source="${source}" target="${target}" encoding="UTF-8">
                <src path="${tmp.src}" />
                <classpath refid="javaclass.path" />
            </javac>
    
            <copy todir="${tmp.web}/WEB-INF/classes" includeemptydirs="false">
                <fileset dir="${tmp.src}">
                    <exclude name="**/*.java" />
                </fileset>
            </copy>
            <copy todir="${tmp.web}/WEB-INF/classes" includeemptydirs="false">
                <fileset dir="${tmp.bin}">
                    <include name="**/*.class" />
                </fileset>
            </copy>
        </target>
    
        <target name="compilejava-without-copy" depends="initdir">
            <echo message="Compiling java code " />
    
            <javac debug="true" debuglevel="${debuglevel}" destdir="${tmp.bin}" source="${source}" target="${target}" encoding="UTF-8">
                <src path="${tmp.src}" />
                <classpath refid="javaclass.path" />
            </javac>
    
        </target>
    
        <target name="buildwar" depends="compilejava">
    
            <echo message="Packing war file " />
    
            <copy todir="${tmp.web}">
                <fileset dir="${project.web}" excludes="**/.svn/**" />
            </copy>
    
            <delete file="${project.war}" failonerror="false" />
            <war destfile="${project.war}" basedir="${tmp.web}" webxml="${tmp.web}/WEB-INF/web.xml" encoding="utf-8" />
            <delete dir="${tmp}" failonerror="false" />
    
            <delete file="${output.dir}/${output.file}" failonerror="false" />
            <move todir="${output.dir}" includeemptydirs="false" filtering="true">
                <fileset dir="${project.build}">
                    <include name="**/*.war" />
                </fileset>
            </move>
    
            <delete dir="${project.build}" failonerror="false" />
    
        </target>
    
        <taskdef resource="checkstyletask.properties"
             classpath="${checkstyle.dir}/checkstyle-5.5-all.jar"/>
    
        <target name="checkstyle" 
            description="Generates a report of code convention violations.">
    
            <checkstyle config="${checkstyle.dir}/my_check.xml"
                failureProperty="checkstyle.failure" failOnViolation="false">
                <formatter type="xml" tofile="${checkstyle.dir}/checkstyle_report.xml" />
                <fileset dir="${project.src}" includes="**/*.java" />
            </checkstyle>
    
            <!-- style in="checkstyle_report.xml" out="checkstyle_report.html"
                style="checkstyle.xsl" /-->
    
        </target>
    
        <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" 
            classpathref ="findbugs.path"/>
    
        <target name="findbugs" depends="compilejava-without-copy"
            description="用Findbugs检查代码错误.">
            <echo>开始用Findbugs检查代码错误</echo>
            <findbugs home="${findbugs.dir}" output="xml"
                outputFile="${findbugs.report.dir}/findbugs_report.xml" >
                <auxClasspath >
                    <path refid="junit.test.lib.path" />
                </auxClasspath>
                <!--auxClasspath path="${basedir}/lib/Regex.jar" /-->
                <sourcePath path="${tmp.src}" />
                <class location="${tmp.bin}" />
            </findbugs>
            <echo>Findbugs检查代码错误完成</echo>
    
            <delete dir="${project.build}" failonerror="false" />
        </target>
        
        <target name="junit-init" >
            <delete dir="${junit.class.dir}" failonerror="false" />
            <mkdir dir="${junit.class.dir}" />
            <delete dir="${junit.reports.dir}/result-xml" failonerror="false" />
            <mkdir dir="${junit.reports.dir}/result-xml" />
            <delete dir="${junit.reports.dir}/html" failonerror="false" />
            <mkdir dir="${junit.reports.dir}/html" />
            <delete dir="${junit.reports.dir}/html-result" failonerror="false" />
            <mkdir dir="${junit.reports.dir}/html-result" />
        </target>
    
    
        <target name="junit-compile" depends="junit-init">
            <echo message="${project.web}/WEB-INF/lib"/>
            <javac srcdir="${project.src}" destdir="${junit.class.dir}" source="${source}" target="${target}" encoding="UTF-8">
                <classpath refid="junit.test.lib.path" />
            </javac>
            <javac srcdir="${junit.test.src}" destdir="${junit.class.dir}" source="${source}" target="${target}" encoding="UTF-8">
                <classpath refid="junit.test.lib.path" />
            </javac>
            <copy todir="${junit.class.dir}">
                <fileset dir="${junit.test.resources}">
                    <include name="**/*.xml" />
                </fileset>
            </copy>
            <copy todir="${junit.class.dir}">
                <fileset dir="${project.src}">
                    <include name="**/*.xml" />
                </fileset>
            </copy>
        </target>
    
        <path id="junit.test.lib.path">
            <pathelement path="${env.JBOSS_HOME}/server/all/lib/servlet-api.jar" />
            <pathelement path="${env.JBOSS_HOME}/server/all/lib/jsp-api.jar" />
            <pathelement path="${env.JBOSS_HOME}/server/all/lib/jboss-j2ee.jar" />
            <fileset dir="${project.web}/WEB-INF/lib" includes="**/*.jar" />
            <fileset dir="${project.lib}" includes="**/*.jar" />
        </path>
        
    
        <target name="junit-test" depends="junit-compile">
            <junit printsummary="yes">
                <classpath>
                    <!-- 指定lib和class路径,class和jar的声明不能混在一起 -->
                    <pathelement location="${junit.class.dir}" />
                    <path refid="junit.test.lib.path" />
                </classpath>
                <batchtest todir="${junit.reports.dir}/result-xml">
                    <fileset dir="${junit.test.src}" includes="**/*TestCase.java" />
                    <formatter type="xml" />
                </batchtest>
            </junit>
            <junitreport todir="${junit.reports.dir}/html-result">
                <!-- 指定测试结果的XML,即上一步产生的XML -->
                <fileset dir="${junit.reports.dir}/result-xml">
                    <include name="TEST-*.xml" />
                </fileset>
                <!-- 根据测试结果XML,生成TESTS-TestSuites.xml,并由此产生HTML文件 -->
                <report format="frames" todir="${junit.reports.dir}/html" />
                <!-- 
                -->
            </junitreport>
        </target>
    </project>

    文章来源:http://www.blogjava.net/paulwong/archive/2012/02/08/369617.html

  • 相关阅读:
    jQuery EasyUI API 中文文档 数字框(NumberBox)
    jQuery EasyUI API 中文文档 数值微调器(NumberSpinner)
    jQuery EasyUI API 中文文档 日期时间框(DateTimeBox)
    jQuery EasyUI API 中文文档 微调器(Spinner)
    jQuery EasyUI API 中文文档 树表格(TreeGrid)
    jQuery EasyUI API 中文文档 树(Tree)
    jQuery EasyUI API 中文文档 属性表格(PropertyGrid)
    EntityFramework 数据操作
    jQuery EasyUI API 中文文档 对话框(Dialog)
    jQuery EasyUI API 中文文档 组合表格(ComboGrid)
  • 原文地址:https://www.cnblogs.com/zz0412/p/jenkins_jj_16.html
Copyright © 2011-2022 走看看