每日构建,是业界比较认可的开发方式,每天将开发人员的代码成果提交,然后编译、测试。不但可以及时了解到开发的情况,保证项目进度,也使项目开发人员养成了良好的习惯。以前的项目是使用CC做配置管理,最近负责的一个使用VSS,以前的ant脚本无法使用,查了一些资料,终于把机制建立起来了。
<
target
name
="clean"
>
<
delete
dir
="${VOB_PATH}/SIMP1.0.1.0/OA_SRC"
/>
<
delete
dir
="${VOB_PATH}/SIMP1.0.1.0/PLT_BIZ_SRC"
/>
<
delete
dir
="${VOB_PATH}/SIMP1.0.1.0/PLT_COMMON_SRC"
/>
<
delete
dir
="${VOB_PATH}/SIMP1.0.1.0/PLT_DB_SRC"
/>
<
delete
dir
="${VOB_PATH}/SIMP1.0.1.0/PLT_FRAMEWORK_SRC"
/>
<
delete
dir
="${VOB_PATH}/SIMP1.0.1.0/VIEW_SRC"
/>
<
delete
dir
="${VOB_PATH}/SIMP1.0.1.0/test"
/>
</
target
>
<!--
从Vss里面取出最新的源代码
-->
<
target
depends
=""
name
="update_vss"
>
<
echo
message
="取最新源代码"
/>
<
vssget
localPath
="${VOB_PATH}/SIMP1.0.1.0/OA_SRC"
recursive
="true"
login
="xufei,xufei"
vsspath
="$/01_产品开发/02_版本级文档/07_源代码/SIMP1.0.1.0/OA_SRC"
ssdir
="${vss.ssdir}"
serverpath
="${vss.svrdir}"
writable
="true"
/>
<
vssget
localPath
="${VOB_PATH}/SIMP1.0.1.0/PLT_BIZ_SRC"
recursive
="true"
login
="xufei,xufei"
vsspath
="$/01_产品开发/02_版本级文档/07_源代码/SIMP1.0.1.0/PLT_BIZ_SRC"
ssdir
="${vss.ssdir}"
serverpath
="${vss.svrdir}"
writable
="true"
/>
</
target
>
<!--
自定义ant任务 检查日志错误
-->
<
target
name
="checkjava"
>
<
echo
message
="开始检查java编译错误..."
/>
<
ci_checkjava
javalog
="${JAVA_LOG}"
message
="因为java文件编译存在错误,所以退出单元测试。"
/>
</
target
>
<!--
进行单元测试
-->
<
target
name
="unittest"
unless
="java.error"
>
<
echo
message
="开始单元测试..."
/>
<
record
name
="${UNIT_LOG}"
action
="start"
/>
<
javac
destdir
="${MAIN_DIR}/test/classes"
nowarn
="on"
encoding
="GBK"
failonerror
="false"
>
<
classpath
refid
="simp_depend_lib_path"
/>
<
classpath
path
="${MAIN_DIR}/classes"
/>
<
src
refid
="simp_test_path"
/>
</
javac
>
<
junit
fork
="on"
printsummary
="yes"
>
<
classpath
refid
="simp_depend_lib_path"
/>
<
classpath
>
<
pathelement
location
="${MAIN_DIR}/classes"
/>
<
pathelement
location
="${MAIN_DIR}/test/classes"
/>
</
classpath
>
<
formatter
type
="plain"
/>
<
batchtest
fork
="no"
todir
="${MAIN_DIR}/test/result"
>
<
fileset
dir
="${VOB_PATH}/code/commonstest"
>
<
include
name
="**/*Test.java"
/>
</
fileset
>
<
fileset
dir
="${VOB_PATH}/code/eaftest"
>
<
include
name
="**/*Test.java"
/>
</
fileset
>
</
batchtest
>
</
junit
>
<
junitreport
todir
="${MAIN_DIR}/reports"
>
<
fileset
dir
="${MAIN_DIR}/test/result"
>
<
include
name
="TEST-*.xml"
/>
</
fileset
>
<
report
format
="frames"
todir
="${MAIN_DIR}/reports"
/>
</
junitreport
>
<
record
name
="${UNIT_LOG}"
action
="stop"
/>
</
target
>
<!--
编译java代码
-->
<
target
name
="compilejava"
>
<
property
name
="java.compile.fail"
value
="vv"
/>
<
property
name
="enablecall"
value
="true"
/>
<
ci_echo
>
编译java代码
</
ci_echo
>
<
record
name
="${MAIN_DIR}/java.log"
action
="start"
/>
<
copy
todir
="${MAIN_DIR}/classes"
>
<
fileset
dir
="${VOB_PATH}/SIMP1.0.1.0/OA_SRC"
>
<
include
name
="**/*.xml"
/>
</
fileset
>
<
fileset
dir
="${VOB_PATH}/SIMP1.0.1.0/PLT_BIZ_SRC"
>
<
include
name
="**/*.xml"
/>
</
fileset
>
</
copy
>
<
javac
failonerror
="false"
destdir
="${MAIN_DIR}/classes"
nowarn
="on"
encoding
="GBK"
>
<
classpath
refid
="simp_depend_lib_path"
/>
<
src
refid
="simp_src_path"
/>
<
include
name
="**/*.java"
/>
<
exclude
name
="**/vssver.scc"
/>
</
javac
>
<
record
name
="${MAIN_DIR}/java.log"
action
="stop"
/>
</
target
>
<!--
编译jsp
-->
<
target
name
="compilejsp"
unless
="java.error"
>
<
property
name
="enablecall"
value
="true"
/>
<
ci_echo
>
编译jsp代码
</
ci_echo
>
<
record
name
="${MAIN_DIR}/jsp.log"
action
="start"
/>
<
java
classname
="weblogic.jspc"
fork
="true"
>
<
arg
line
="-webapp ${JSP_PATH}/admin -compileAll -d ${MAIN_DIR}/jspc/admin -k *.jsp"
/>
<
classpath
refid
="simp_depend_lib_path"
/>
<
classpath
>
<
pathelement
path
="${MAIN_DIR}/classes"
/>
<
pathelement
location
="../lib/tools.jar"
/>
</
classpath
>
</
java
>
<
record
name
="${MAIN_DIR}/jsp.log"
action
="stop"
/>
</
target
>
<
target
name
="checkstyle"
>
<
checkstyle
config
="${CHECKSTYLEDIR}/sims_checks_eclipse.xml"
>
<
fileset
dir
="${VOB_PATH}/SIMP1.0.1.0"
includes
="**/*.java"
/>
<
formatter
type
="xml"
toFile
="${CHECKSTYLEDIR}/report/report.xml"
/>
</
checkstyle
>
<
style
in
="${CHECKSTYLEDIR}/report/report.xml"
out
="${CHECKSTYLEDIR}/report/report.html"
style
="${CHECKSTYLEDIR}/contrib/checkstyle-frames.xsl"
/>
</
target
>
<!--
自定义ant任务 检查日志是否有错误,没有错误则发送编译成功邮件
-->
<
target
name
="mail"
>
<
ci_echo
>
开始发送Email.
</
ci_echo
>
<
property
name
="enablecall"
value
="true"
/>
<
ci_simplemail
proj_name
="${PROJ_NAME}"
subject
="#USERNAME#,请检查代码"
mailhost
="${MAIL_HOST}"
user
="${USER}"
password
="${PASSWD}"
messagemimetype
="text/html"
javalog
="${JAVA_LOG}"
jsplog
="${JSP_LOG}"
junitlog
="${UNIT_LOG}"
>
<
from
address
="${SENDER}"
/>
<
cc
address
="${CC_ADDR}"
/>
<
fileset
dir
="${MAIN_DIR}"
>
<
include
name
="*.log"
/>
</
fileset
>
</
ci_simplemail
>
</
target
>
基于VSS日构建的主要脚本:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)