应用自动部署脚本

应用部署

进入 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目录。

你可能感兴趣的:(apache,tomcat,SVN,ant,脚本)