应用自动部署脚本

应用部署

进入 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目录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值