应用部署
进入 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目录。