应用部署

进入 192.168.1.167 的/home/admin/scm 目录 执行 sh build.sh 就行了.

1.配置tomcat目录
SCM/script/build.properties
catalina.home : 这个为tomcat安装的目录.
比如我这边是
/usr/src/apache-tomcat-5.5.33 这个目录下

2.更新svn代码说明

build_update.sh 文件中配置了更新svn的操作

#!/bin/sh 

echo "SVN update start... " 

USERNAME=sin** 

PASSWORD=sin** 

cd /home/admin/scm/source 

#rm -rf /home/admin/scm/source/* 

svn checkout http://bstekhz.gicp.net:5032/svn/ebusiness/code/SCM/SCM --username=$USERNAME --password=$PASSWORD 

svn update 

echo "SVN update OK" 

sleep 1




3.打包部署
build_start.sh 文件中配置了 关闭tomcat,编译打包,拷贝到tomcat下,启动tomcat

TOMCAT_HOME=/usr/src/apache-tomcat-5.5.33 

echo "Killing down tomcat" 

for i in `ps -ef | grep -v grep | grep tomcat | awk '{print $2}'` ; 

do 

echo "Killing PID ($i)..." 

kill -9 $i 

done 


sleep 1 


echo "ANT war start..." 

cd /home/admin/scm/source/SCM/script 

ant package 

echo "ANT war OK" 


echo "update war start" 


echo "clean up tomcat tmp work" 

rm -fr /usr/src/apache-tomcat-5.5.33/webapps/SCM 

rm -fr /usr/src/apache-tomcat-5.5.33/webapps/SCM.war 

cp /home/admin/scm/source/SCM/build/SCM.war /usr/src/apache-tomcat-5.5.33/webapps/SCM.war 

#rm -rf /home/admin/scm/source/* 


echo "Starting tomcat server now ..." 

$TOMCAT_HOME/bin/startup.sh 

echo "start tomcat Success"


4.一个便捷方式

#!/bin/sh 

#build and package 


cd /home/admin/scm 

sh build_update.sh 

sh build_start.sh




5.ant配置文件

build.properties 


#Wed Mar 02 11:12:28 CST 2011 

final.name=${name} 

name=SCM 

build.dir=../build 

web.dir=../web 

catalina.home=/usr/src/apache-tomcat-5.5.33


6.dorado配置文件

prod-dorado.properties 


sourceFileLoader=com.bstek.dorado.common.fileloader.DefaultFileLoader 

configFileLoader=com.bstek.dorado.common.fileloader.DefaultFileLoader 

sourceFileLoader.root=classpath\: 

configFileLoader.root=classpath\:doradohome


7.部署ant脚本
build.xml


<?xml version="1.0" encoding="UTF-8"?> 

<project name="DoradoProject" default="package"> 


 <property file="${basedir}/build.properties" /> 


 <property name="catalina.home" value="${catalina.home}"/> 

 <property name="lib.dir" value="${web.dir}/WEB-INF/lib"/> 

 <property name="cfg.dir" value="../cfg"/> 


 <target name="init" depends="clean"> 

 <mkdir dir="${build.dir}" /> 

 <mkdir dir="${build.dir}/doradohome" /> 

 <copy todir="${build.dir}/doradohome"> 

 <fileset dir="../home"> 

 <include name="**/*.*" /> 

 </fileset> 

 </copy> 

 <mkdir dir="${build.dir}/web" /> 

 <copy todir="${build.dir}/web"> 

 <fileset dir="${web.dir}"> 

 <include name="**/*.*" /> 

 </fileset> 

 </copy> 

 <delete file="${build.dir}/web/WEB-INF/dorado.properties" /> 

 <copy file="prod-dorado.properties" tofile="${build.dir}/web/WEB-INF/dorado.properties" /> 

 </target> 


 <path id="compile.classpath"> 

 <fileset dir="${catalina.home}/common/lib"> 

 <include name="*.jar"/> 

 </fileset> 

 <fileset dir="${lib.dir}"> 

 <include name="*.jar"/> 

 </fileset> 

 </path> 


 <target name="compile" description="Compile Java sources" depends="clean"> 

 <mkdir dir="${build.dir}/web/WEB-INF/classes"/> 

 <javac srcdir="../src" 

 destdir="${build.dir}/web/WEB-INF/classes" includeantruntime="on" encoding="UTF-8"> 

 <classpath refid="compile.classpath"/> 

 </javac> 

 <copy todir="${build.dir}/web/WEB-INF/classes"> 

 <fileset dir="../src" excludes="**/*.java"/> 

 <fileset dir="${cfg.dir}"/> 

 </copy> 

 </target> 



 <!-- ================================================================== --> 

 <!-- Make Dorado Web Project war file --> 

 <!-- ================================================================== --> 

 <target name="war" depends="init"> 

 <war destfile="${build.dir}/${final.name}.war" webxml="${build.dir}/web/WEB-INF/web.xml"> 

 <fileset dir="${build.dir}/web" /> 

 <zipfileset prefix="WEB-INF/classes/doradohome" dir="${build.dir}/doradohome" /> 

 </war> 

 </target> 


 <!-- ================================================================== --> 

 <!-- Clean Dorado build file --> 

 <!-- ================================================================== --> 


 <target name="clean"> 

 <delete dir="${build.dir}" /> 

 </target> 



 <target name="package" depends="clean,init,compile,war"> 

 </target> 


</project>




SVN是常用的一种常见的版本控制软件。SVN中检出(check out) 和 导出(export) 的区别主要有如下几条:

check out跟check in对应,export跟import对应 <、li>
check out导出获得文件后,导出的文件仍处于SVN版本控制中,与版本库保持关联,比如你可以进行Svn Update或者Svn Commit操作。同时导出文件夹下有一个.svn的隐藏文件夹,存储着一些版本的元数据信息。
export 简单导出一个版本的数据,导出的文件脱离SVN版本控制,修改后无进行Update和Commit操作。导出文件夹下没有.svn目录。