paulwong

          一個完整的JENKINS下的ANT BUILD.XML文件

          <?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>

          posted on 2012-02-08 18:40 paulwong 閱讀(5746) 評論(1)  編輯  收藏 所屬分類: JENKINS

          Feedback

          # re: 一個完整的JENKINS下的ANT BUILD.XML文件 2012-08-24 16:51 小新

          內牛滿面,只有這個build.xml才是最好的!  回復  更多評論   


          主站蜘蛛池模板: 揭西县| 邛崃市| 榆林市| 通化市| 太原市| 革吉县| 三台县| 黔西| 明溪县| 任丘市| 黄平县| 开鲁县| 鱼台县| 凤翔县| 墨玉县| 广东省| 孟津县| 仪陇县| 襄樊市| 阜南县| 察雅县| 富蕴县| 红河县| 安陆市| 大丰市| 大宁县| 瑞丽市| 延津县| 泰兴市| 称多县| 海南省| 鹤岗市| 车险| 莱芜市| 洛隆县| 滦平县| 英德市| 景泰县| 潞城市| 太仆寺旗| 聂荣县|