<?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>
分享到:
相关推荐
### 二、CruiseControl.rb的主要组件 1. **Source Control**:CruiseControl.rb支持多种版本控制系统,如Git、Subversion(SVN)、Mercurial等,用于获取最新的代码变更。 2. **Builder**:构建器负责执行编译、...
标题与描述概述的知识点主要涉及了使用CruiseControl与Maven2进行持续集成的配置流程。这是一项在软件开发过程中非常关键的技术实践,它能够自动检测代码库中的更新,并自动执行构建、测试以及部署等任务,从而确保...
主题:持续集成及CruiseControl技术交流 在提升软件质量、降低研发风险、拒绝浪费方面,处于敏捷实践领域的持续集成(Continuous Integration,CI)起到重要作用。持续集成能够解决研发工作中的80%任务(日常),...
**持续集成实践之CruiseControl** 在软件开发领域,持续集成(Continuous Integration,简称CI)是一种重要的实践,它强调开发者频繁地将代码更改合并到主分支,以尽早发现并解决问题。CruiseControl是一款开源的...
4. **使用CruiseControl搭建持续集成环境**:Elvis_Chen的技术博客文章可能提供了更深入的实践指导,讲解了如何将CruiseControl整合到实际的开发环境中,包括项目导入、构建脚本编写以及测试结果的展示。 5. **...
通常,你需要下载CruiseControl的二进制包,然后根据项目需求配置XML配置文件。配置文件包含了项目源码位置、构建命令、测试脚本、邮件通知等信息。例如,你可以设置CruiseControl在每次构建后发送邮件通知,以便...
**第一章 CruiseControl实践** 1.1 CruiseControl架构 CruiseControl的核心是一个服务器,它负责监听源代码仓库的变更,并在检测到变更时触发构建过程。这个过程包括编译代码、运行单元测试以及执行其他自动化任务...
- **CruiseControl.doc**:可能是一份CruiseControl的入门教程或者详细使用指南,涵盖安装配置、基本概念、常用命令和最佳实践等内容。 - **CruiseControl2.doc**:可能是关于CruiseControl的进阶使用,可能涉及...
**CruiseControl简介** CruiseControl是一款开源的持续集成工具,最初由ThoughtWorks公司开发,现在由一个活跃的开源社区维护。它的主要功能是监控和自动化软件构建过程,确保项目在开发过程中始终保持可构建状态。...
### Cruisecontrol:持续集成平台与分布式构建实践 #### 一、CruiseControl简介 CruiseControl是一个开源的持续集成平台,旨在帮助企业实现自动化构建过程,提高软件开发效率和质量。项目采用Apache许可证发布,...
CruiseControl是一款开源的持续集成工具,主要用于自动化软件构建、测试和发布流程。它通过监控代码库的变更...通过学习和实践CruiseControl,开发者可以更好地掌握持续集成的理念和技术,从而提升整个团队的开发效能。
CruiseControl是CI服务器的老者,诞生已是多年,在许多方面,CruiseControl服务器已经成为持续集成实践的同义词。而现在,CruiseControl已发展成为一个家族式系统,包括CruiseControl.java、CruiseControl.net、...
SVN+cruisecontrol 搭建持续集成开发环境 持续集成开发环境是软件开发过程中的一种实践,它能够自动地构建、测试和部署软件,提高开发效率和软件质量。SVN(Subversion)是一种版本控制系统,能够帮助开发团队管理...
综合使用PyAnt和CruiseControl,可以极大地提高Python项目的构建效率,实现持续集成的最佳实践,确保项目的稳定性和质量。对于大型团队或者需要频繁迭代的项目,这样的工具组合尤其重要。通过阅读文档、源代码和API...
综上所述,实现基于CruiseControl和Rational统一变更管理的自动化持续构建是一个高效而现代的软件开发实践,它对于提高软件项目的质量和迭代速度具有显著的效果。通过深入理解这两个工具的功能和集成方式,开发团队...
CruiseControl是一款开源的持续集成服务器,版本2.7.3提供了自动化构建、测试和部署的功能,帮助团队高效协作,确保软件质量。 安装CruiseControl非常简单,可以下载exe安装文件直接安装,并通过`cruisecontrol.bat...
### 自动化集成CruiseControl.NET、NAnt与NUnit:构建持续集成环境 #### 概述 在软件开发过程中,回归测试是一个重要的但经常被忽视的环节。回归测试是指在对已有代码进行修改后重新运行之前的测试用例,以确保...