CruiseControl 实践(二)


<?xml version="1.0" encoding="gb2312"?>

<project name="FWMS_CHRIST" basedir="." default="core">
<!-- 设置初始化参数 -->
<property file="db.properties"></property>

<taskdef name="wlserver" classname="weblogic.ant.taskdefs.management.WLServer" classpath="${domain.lib}/weblogic.jar" />
<taskdef name="FindBugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" classpath="${findbugs.home}/lib/findbugs-ant.jar"/>
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" classpath="${pmd.home}/lib/pmd-4.2.5.jar"/>
<taskdef name="convertXmlToText" classname="edu.umd.cs.findbugs.anttask.ConvertXmlToTextTask" classpath="${findbugs.home}/lib/findbugs-ant.jar"/>


<!-- 设置classpath -->
<path id="libpath">
<fileset dir="${java160.home}">
<include name="lib/tools.jar" />
<include name="jre/lib/rt.jar" />
</fileset>
<fileset dir="${bea.lib}">
<include name="ojdbc6.jar" />
<include name="*weblogic.jar" />
<include name="*webservices.jar" />
</fileset>
<fileset dir="${junit_src}">
<include name="junit-4.8.1.jar" />
</fileset>
<fileset dir="${ear.dir}/APP-INF/lib">
<include name="*.jar" />
<include name="*.zip" />
</fileset>
</path>

<path id="checkstyle-lib">
<fileset dir="${checkstyle.dir}">
<include name="checkstyle-5.3.jar" />
<include name="checkstyle-5.3-all.jar" />
</fileset>
</path>

<!--清除-->
<target name="init">
<delete dir="${ear.dir}/APP-INF/classes" />
<delete dir="${reports}" />
<delete dir="${checkresults}" />
<delete dir="${build.src}" />
<delete dir="${jar.dest}" />
<delete dir="${war.dest}" />
<delete dir="${buildwar.dest}" />
<delete dir="${build.lib}" />
<delete dir="${build.classes}" />
<antcall target="stop"></antcall>
</target>

<!-- 获取源文件 -->
<target name="CheckOutFromStarTeam">
<mkdir dir="${build.dir}" />
<stcheckout URL="${ST.url}" username="${ST.user}" password="${ST.password}" projectname="FWMS_CHRIST" rootlocalfolder="${build.dir}" rootstarteamfolder="code/webApp" deleteuncontrolled="true" forced="true" recursive="true" />
</target>

<!-- 编译 -->
<target name="compilecode">
<mkdir dir="${ear.dir}/APP-INF/classes" />
<javac srcdir="${src.dir}" destdir="${ear.dir}/APP-INF/classes" verbose="false" debug="true" failonerror="false" encoding="GBK" source="1.6" target="1.6">
<classpath refid="libpath" />
<compilerarg line="-Xlint:deprecation -Xlint:unchecked" />
<include name="**/*.java" />
</javac>
</target>

<!--CheckStyle-->
<target name="checkstyle">
<delete dir="${checkresults}" />
<mkdir dir="${checkresults}" />
<taskdef resource="checkstyletask.properties" classpath="${checkstyle-lib}">
</taskdef>
<checkstyle config="D:/eclipse/个人设置/comtop-checkstyle-1.1(200903).xml" failureProperty="checkstyle.failure" failOnViolation="false">
<formatter type="xml" toFile="${checkresults}/checkstyle_report.xml" />
<fileset dir="${src.dir}">
<include name="**/*.java" />
</fileset>
</checkstyle>
<xslt in="${checkresults}/checkstyle_report.xml"
out="${checkresults}/simple_checkstyle_report.html"
style="${checkstyle.dir}/contrib/checkstyle-simple.xsl" />
<xslt in="${checkresults}/checkstyle_report.xml"
out="${checkresults}/author_checkstyle_report.html"
style="${checkstyle.dir}/contrib/checkstyle-author.xsl" />
<xslt in="${checkresults}/checkstyle_report.xml"
out="${checkresults}/noframes_checkstyle_report.html"
style="${checkstyle.dir}/contrib/checkstyle-noframes.xsl" />
<xslt in="${checkresults}/checkstyle_report.xml"
out="${checkresults}/noframes_sorted_checkstyle_report.html"
style="${checkstyle.dir}/contrib/checkstyle-noframes-sorted.xsl" />
</target>

<!--pmd-->
<target name="pmd">
<delete dir="pmd-results/xml" />
<delete dir="pmd-results/html" />
<mkdir dir="pmd-results/html" />
<mkdir dir="pmd-results/xml" />
<pmd shortFilenames="true">
<ruleset>D:/eclipse/个人设置/comtop-PMD-rules-1.1.xml</ruleset>
<formatter type="xml" toFile="./pmd-results/xml/FWMS_CHRIST-pmd.xml" toConsole="false" linePrefix=".line" />
<fileset dir="${src.dir}">
<include name="**/*.java" />
</fileset>
</pmd>
<xslt in="./pmd-results/xml/FWMS_CHRIST-pmd.xml" out="./pmd-results/html/perclass_pmd_report.html" style="${pmd.home}/etc/xslt/pmd-report-per-class.xslt" />
<xslt in="./pmd-results/xml/FWMS_CHRIST-pmd.xml" out="./pmd-results/html/wz_pmd_report.html" style="${pmd.home}/etc/xslt/wz-pmd-report.xslt" />
</target>


<!--复制配置文件-->
<target name="copyfile">
<copy todir="${ear.dir}/APP-INF/classes" overwrite="true" includeEmptyDirs="false">
<fileset dir="${src.dir}/resources">
<exclude name="**/*.java" />
</fileset>
</copy>
<copy todir="${ear.dir}/APP-INF/classes" overwrite="true" includeEmptyDirs="false">
<fileset dir="${src.dir}/bussiness">
<exclude name="**/*.java" />
</fileset>
</copy>
<copy todir="${ear.dir}/APP-INF/classes" overwrite="true" includeEmptyDirs="false">
<fileset dir="${src.dir}/test">
<exclude name="**/*.java" />
</fileset>
</copy>
</target>

<!-- 编译属性文件 -->
<target name="buildproperties">
<native2ascii encoding="GBK" src="${src.dir}" dest="${ear.dir}/APP-INF/classes" includes="*.properties" ext="_zh_CN.properties" />
</target>

<!-- 删除jar缓存文件 -->
<target name="deletetmp">
<delete dir="${domain.dir}/servers/AdminServer/tmp" />
</target>

<!-- 预编译JSP -->
<target name="precompilejsp">
<delete dir="${jsp.dir}" />
<java classname="weblogic.jspc" fork="true" jvm="${java160.home}/bin/java">
<jvmarg line="-Dcom.sun.xml.namespace.QName.useCompatibleSerialVersionUID=1.0 -Xms512m -Xmx1024m" />
<classpath refid="libpath" />
<arg line="-encoding GBK -verboseJspc -linenumbers -noImplicitTlds -webapp ${ear.dir}/web -d ${jsp.dir}" />
</java>
</target>

<!--关闭weblogic -->
<target name="shutdownweblogic">
<wlserver
classpath="${domain.lib}/weblogic.jar"
forceshutdown="true"
dir="${domain.dir}"
host="127.0.0.1"
port="7777"
action="shutdown"
servername="AdminServer"
weblogichome="${bea.home}"
username="weblogic"
password="weblogic"
/>
</target>

<!--启动weblogic-->
<target name="startWebLogic" description="starts a WebLogic">
<wlserver productionmodeenabled="true"
noexit="true"
verbose="true"
maxmemory="512M"
generateconfig="false"
classpath="${domain.lib}/weblogic.jar"
dir="${domain.dir}"
host="127.0.0.1"
port="7777"
action="start"
servername="AdminServer"
weblogichome="${bea.home}"
username="weblogic"
password="weblogic"
>
<jvmarg line="-Xms512m -Xmx768m" />
<jvmarg value="-XX:MaxPermSize=512m"/>
</wlserver>
</target>


<!--junit测试-->
<target name="junitTest">
<mkdir dir="${reports}" />
<mkdir dir="${reports}/xml" />
<junit haltonfailure="no" printsummary="on" jvm="${fvt.java.home}/bin/java">
<classpath refid="libpath" />
<formatter type="brief" usefile="false" />
<formatter type="xml" />
<batchtest>
<fileset dir="${test.dir}">
<patternset>
<include name="**/*Test.java" />
</patternset>
</fileset>
</batchtest>
<classpath>
<pathelement location="${ear.dir}/APP-INF/classes" />
</classpath>
</junit>
<move todir="${reports}/xml">
<fileset dir=".">
<include name="TEST-*.xml" />
</fileset>
</move>
</target>

<!--Findbugs检查-->
<target name="convert" >
<delete dir="findbugs-results/xml"/>
<delete dir="findbugs-results/html"/>
<mkdir dir="findbugs-results/html"/>
<mkdir dir="findbugs-results/xml"/>
<FindBugs home="${findbugs.home}" output="xml:withMessages" outputFile="findbugs-results/xml/FWMS_CHRIST-fb.xml" jvmargs="-Xmx1024m">
<class location="${ear.dir}/APP-INF/classes" />
<sourcePath path="${src.dir}" />
</FindBugs>
<convertXmlToText home="${findbugs.home}"
input="findbugs-results/xml/FWMS_CHRIST-fb.xml"
output="findbugs-results/html/findbugs.html"
format="html:fancy.xsl"
>
</convertXmlToText>
</target>

<target name="test">
<mkdir dir="${reports}/html" />
<!--调用junitreport来产生TESTS-TestSuites.xml及web报告-->
<junitreport todir="${reports}">
<report todir="${reports}/html" />
</junitreport>
<!--避免反馈两份JUNIT测试报告到EMAIL 把总报告[TESTS-TestSuites.xml]剪切到根目录下-->
<move todir=".">
<fileset dir="${reports}">
<include name="TESTS-*.xml" />
</fileset>
</move>
</target>


<!--构建-->
<target name="buildTask" depends="stop">
<!--初始化-->
<antcall target="init">
</antcall>
<!--获取源代码-->
<antcall target="CheckOutFromStarTeam">
</antcall>
<!--checkstyle检查-->
<antcall target="checkstyle">
</antcall>
<!--pmd-->
<antcall target="pmd">
</antcall>
<!--编译源码-->
<antcall target="compilecode">
</antcall>
<!--Findbugs检查-->
<antcall target="convert">
</antcall>
<!--拷贝配置文件-->
<antcall target="copyfile">
</antcall>
<!--编译属性文件-->
<antcall target="buildproperties">
</antcall>
<!--JUNIT测试-->
<antcall target="junitTest">
</antcall>
<!--拷贝测试报告-->
<antcall target="test">
</antcall>
</target>

<!--自动化部署-->
<target name="deployTask">
<!-- 删除jar缓存文件 -->
<antcall target="deletetmp">
</antcall>
<!--预编译JSP-->
<antcall target="precompilejsp">
</antcall>
<!--启动weblogic
<antcall target="startWebLogic">
</antcall>
-->
</target>

<!--持续集成-->
<target name="core" depends="buildTask,deployTask" />

<!--启动weblogic-->
<target name="start" depends="startWebLogic"/>

<!--关闭weblogic-->
<target name="stop" depends="shutdownweblogic"/>
</project>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值