|
远程脚本
BUILD_ID=JCServerClaim_nvhl
projectname=claim_nvhl
ssh -tt weblogic@171.33.32.5 > /dev/null 2>&1 <<eeooff
sh /home/mw/weblogic/app/scripts/$projectname/mkdir.sh
exit
eeooff
echo makeclear
scp /home/ap/APP/$projectname.war weblogic@171.33.32.5:/home/mw/weblogic/app/$projectname/
wait
ssh -tt weblogic@171.33.32.5 <<eeooff
cd /home/mw/weblogic/app/$projectname/
jar -xf $projectname.war
wait
rm -rf $projectname.war
cp -rf /home/mw/weblogic/app/appconf/$projectname/* /home/mw/weblogic/app/$projectname/
sh /home/mw/weblogic/app/shell/cp$projectname.sh
sh /home/mw/weblogic/admin_domain/bin/startServerClaim_nvhl.sh
sleep 6
exit
eeooff
echo done
ant脚本:
build.properties ant配置文件
project.name=claim_nvhl
build.src=${basedir}/src
build.src.main=${build.src}/main
build.src.main.java=${build.src}/main/java
build.src.main.resources=${build.src}/main/resources
build.src.test=${build.src}/test
build.src.interface=${build.src}/interface
compile-lib1.dir=/home/ap/jenkins/lib
build.webroot=${basedir}/WebRoot
build.dest=${build.webroot}/WEB-INF/classes
lib.dir=${build.webroot}/WEB-INF/lib
deploy.location=/home/ap/APP
build.war=${deploy.location}/${project.name}.war
server.start.home=/home/mw/weblogic/domains_dev/AdminDev_domains
server.ip=171.33.34.113
server.javahome=/usr/local/jdk7
domain.port=7002
server.port=8207
weblogic.home=/home/mw/weblogic/wls1036/wlserver_10.3
weblogic.lib=${weblogic.home}/server/lib
changelog=${basedir}/changelog.txt
svn.repo.url=http\://svn_server\:81/svn/PCISV6_AB/
svn.trunk.root.url=${svn.repo.url}/trunk/01\u9879\u76EE\u5DE5\u4EF6\u5E93/05\u7A0B\u5E8F\u5B9E\u73B0/policy
svn.tag.root.url=${svn.repo.url}/tags/policy
build.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- ======================================================================= -->
<!-- 说明: -->
<!-- 1. tag,removetag等target需引入svnant,antform包才能使用 -->
<!-- 2. 可在定义svn.username和svn.password变量以免每次作subversion操作时输入 -->
<!-- ======================================================================= -->
<project default="startserver" basedir=".">
<description>
PCIS V6项目的ant构建文件
</description>
<tstamp>
<format property="version.date" pattern="yyyyMMdd_HHmmss" />
</tstamp>
<property name="weblogic.deploy.para" value="weblogic.Deployer -adminurl http://${server.ip}:${domain.port}" description="部署参数,一般无需修改"/>
<property name="weblogic.undeploy" value="java -cp ${weblogic.lib}/weblogic.jar ${weblogic.deploy.para} -undeploy -name ${project.name}" description="undeploy,一般无需修改"/>
<property name="weblogic.deploy" value="java -cp ${weblogic.lib}/weblogic.jar ${weblogic.deploy.para} -deploy ${deploy.location.name}" description="deploy,一般无需修改"/>
<property file="${basedir}/build.properties" />
<!--<path>
<pathelement path="${jsdk_jar}"/>
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
</fileset>
</path>-->
<!-- =================================================================== -->
<!-- 显示帮助 -->
<!-- =================================================================== -->
<target name="help" description="本ant构建文件的使用帮助">
<echo>
PCIS V6项目构建
targets:
compile --> 编译
deploy --> 部署(针对dbserver,使用前更新版本、运行compile、关服务器)
jar --> 打包${build.desc}到${build.jar}
tag --> 给Subversion上的最新版本打标签
rmtag --> 移除标签
tag,removetag需引入svnant,antform包才能使用
svnant包可从http://subclipse.tigris.org/svnant.html获得
antform包可从http://antforms.sourceforge.net获得
</echo>
</target>
<path>
<pathelement location="${build.dest}" />
<fileset dir="${lib.dir}">
<patternset>
<include name="*.jar" />
</patternset>
</fileset>
<fileset dir="${compile-lib1.dir}">
<patternset>
<include name="*.jar" />
</patternset>
</fileset>
</path>
<!--备份-->
<target name="bak" description="编译">
<exec executable="/bin/sh">
<arg value="${basedir}/mkdir.sh" />
</exec>
</target>
<!-- =================================================================== -->
<!-- 编译 -->
<!-- =================================================================== -->
<target name="compile" depends="bak" description="编译">
<javac srcdir="${build.src.main.java}" destdir="${build.dest}" debug="on" optimize="on" encoding="UTF-8">
<classpath refid="classpath" />
<exclude name="${build.src}/**/*.xml" />
</javac>
<javac srcdir="${build.src.main.resources}" destdir="${build.dest}" debug="on" optimize="on" encoding="UTF-8">
<classpath refid="classpath" />
<exclude name="${build.src}/**/*.xml" />
</javac>
<javac srcdir="${build.src.interface}" destdir="${build.dest}" debug="on" optimize="on" encoding="UTF-8">
<classpath refid="classpath" />
<exclude name="${build.src}/**/*.xml" />
</javac>
<javac srcdir="${build.src.test.java}" destdir="${build.dest}" debug="on" optimize="on" encoding="UTF-8">
<classpath refid="classpath" />
<exclude name="${build.src}/**/*.xml" />
</javac>
<!--<copy todir="${build.dest}" verbose="true">
<fileset dir="${build.src.main.java}">
<exclude name="**/.svn" />
<exclude name="**/*.java" />
<exclude name="**/*.class" />
</fileset>
<fileset dir="${build.src.main.resources}">
<exclude name="**/.svn" />
<exclude name="**/*.java" />
<exclude name="**/*.class" />
</fileset>
<fileset dir="${build.src.interface}">
<exclude name="**/.svn" />
<exclude name="**/*.java" />
<exclude name="**/*.class" />
</fileset>
<fileset dir="${build.src.test}">
<exclude name="**/.svn" />
<exclude name="**/*.java" />
<exclude name="**/*.class" />
</fileset>
</copy>-->
</target>
<!--<target name="compile1" description="编译">
<javac srcdir="${build.src}" destdir="${build.dest}" debug="on" optimize="on" encoding="UTF-8">
<classpath refid="classpath" />
</javac>
<javac srcdir="${build.src2}" destdir="${build.dest}" debug="on" optimize="on">
<classpath refid="classpath" />
</javac>
</target>-->
<!-- =================================================================== -->
<!-- 部署 -->
<!-- =================================================================== -->
<target name="deploy" description="部署(在dbserver上)" depends="compile">
<!--移除旧文件 -->
<!--<delete>
<fileset dir="${deploy.location}/${project.name}.war" />
</delete>-->
<!-- 拷贝新文件,除了需要修改的文件 -->
<copy todir="${deploy.location}/${project.name}/WEB-INF/classes" verbose="true">
<fileset dir="${build.src.main.java}">
<exclude name="**/.svn" />
<exclude name="**/*.java" />
<exclude name="**/*.class" />
</fileset>
<fileset dir="${build.src.main.resources}">
<exclude name="**/.svn" />
<exclude name="**/*.java" />
<exclude name="**/*.class" />
</fileset>
<fileset dir="${build.src.interface}">
<exclude name="**/.svn" />
<exclude name="**/*.java" />
<exclude name="**/*.class" />
</fileset>
<fileset dir="${build.src.test.java}">
<exclude name="**/.svn" />
<exclude name="**/*.java" />
<exclude name="**/*.class" />
</fileset>
</copy>
<copy todir="${deploy.location}/${project.name}" verbose="true">
<fileset dir="${build.webroot}">
<exclude name="${build.webroot}/WEB-INF/web.xml" />
<exclude name="${build.webroot}/WEB-INF/biz-context-hibernate.xml" />
<exclude name="${build.webroot}/WEB-INF/classes/spring_dubbo_service.xml" />
<exclude name="${build.webroot}/WEB-INF/classes/log4j.xml" />
<exclude name="${build.webroot}/WEB-INF/classes/dubbo_service.xml" />
<exclude name="${build.webroot}/WEB-INF/classes/conf/pcisv6DataSource.properties" />
<exclude name="${build.webroot}/WEB-INF/classes/conf/applicationDeployment.properties" />
</fileset>
</copy>
<copy todir="${deploy.location}/${project.name}" verbose="true" overwrite="true" >
<fileset dir="/home/ap/APP/appconf/${project.name}">
</fileset>
</copy>
<!-- 修改安全认证设置 -->
<!--<exec executable="/bin/sh">
<arg value="${deploy.location}/shell/cp${project.name}.sh" />
</exec>-->
</target>
<!-- =================================================================== -->
<!-- 打包classes到${pcisjar} -->
<!-- =================================================================== -->
<target name="rmwar" description="移除包" depends="deploy">
<echo>移除包</echo>
<delete file="${build.war}">
</delete>
</target>
<!-- =================================================================== -->
<!-- 打包classes到${pcisjar} -->
<!-- =================================================================== -->
<target name="war" description="打包" depends="rmwar">
<echo>开始打包</echo>
<war destfile="${build.war}" webxml="${deploy.location}/${project.name}/WEB-INF/web.xml" >
<fileset dir="${basedir}" includes="changelog.txt" />
<fileset dir="${deploy.location}/${project.name}" />
</war>
</target>
<!--重启服务-->
<target name="startserver" depends="war">
<exec executable="${deploy.location}/shell/cp${project.name}.sh" />
</target>
<!-- =================================================================== -->
<!-- 扩展svnant任务, 此build文件用它来进行subversion客户端操作 -->
<!-- svnant包可从http://subclipse.tigris.org/svnant.html获得 -->
<!-- =================================================================== -->
<target name="-taskdef.svnant">
<typedef resource="org/tigris/subversion/svnant/svnantlib.xml"/>
</target>
<!-- =================================================================== -->
<!-- 扩展antform任务, 用于录入界面 -->
<!-- antform包可从http://antforms.sourceforge.net获得 -->
<!-- =================================================================== -->
<target name="-taskdef.antform">
<typedef resource="com/sardak/antform/taskdefs.properties" />
</target>
<!-- =================================================================== -->
<!-- 中止操作 -->
<!-- =================================================================== -->
<target name="-cancel">
<fail message="动作取消" />
</target>
<!-- =================================================================== -->
<!-- 提示用户输入subversion打标签/移除标签操作需要以下信息: -->
<!-- 标签名 -->
<!-- 默认为${svn.tag.root.url}/policy/test_policy_YYYYMMDD_1 -->
<!-- 可在buidl.properties中改变${svn.tag.root.url}的值 -->
<!-- 注释 -->
<!-- 用户名 -->
<!-- 未定义时提示输入,可预先定义$svn.username以免每次输入 -->
<!-- 密码 -->
<!-- 未定义时提示输入,可预先定义${svn.password}以免每次输入 -->
<!-- =================================================================== -->
<target name="-svn.tag.input" depends="-taskdef.antform">
<property name="svn.tag.name" value="pcisv6_ab_policy_${DSTAMP}_1" />
<antform> <textProperty label="标签名: " property="svn.tag.name" Required="true" />
<multilineTextProperty label=" 注释: " property="svn.tag.comment" Required="false" />
<textProperty label="用户名: " property="svn.username" unless="svn.username" Required="true" />
<textProperty label="密码: " property="svn.password" unless="svn.password" password="true" Required="true" />
<controlbar>
<button type="ok" label="确定"/>
<button type="cancel" label="取消" target="cancel"/>
</controlbar>
</antform>
</target>
<!-- =================================================================== -->
<!-- 创建subversion标签 -->
<!-- =================================================================== -->
<target name="tag" depends="-svn.tag.input,-taskdef.svnant" description="给Subversion当前最新版本打标签">
<echo>开始创建标签${svn.tag.name}</echo>
<svn username="${svn.username}" password="${svn.password}">
<copy srcUrl="${svn.trunk.root.url}"
destUrl="${svn.tag.root.url}/${svn.tag.name}"
message="${svn.tag.comment}"/>
</svn>
</target>
<!-- =================================================================== -->
<!-- 移除subversion标签 -->
<!-- =================================================================== -->
<target name="rmtag" depends="-svn.tag.input,-taskdef.svnant"
description="移除subversion版本标签">
<echo>移除标签${svn.tag.name}</echo>
<svn username="${svn.username}" password="${svn.password}">
<delete url="${svn.tag.root.url}/${svn.tag.name}"
message="${svn.tag.comment}"/>
</svn>
</target>
<target name="test" depends="-svn.tag.input" description="测试target" >
<echo>${svn.tag.comment}</echo>
</target>
</project>
mkdir.sh脚本
#!/bin/bash
filesize=`du -shm /home/ap/APP/claim_nvhl |awk '{print $1}'`
if [ $filesize -ge 10 ];then
mv /home/ap/APP/claim_nvhl /home/ap/APP/claim_nvhl$(date +%F%R)
mkdir /home/ap/APP/claim_nvhl
else
rm -rf /home/ap/APP/claim_nvhl
mkdir /home/ap/APP/claim_nvhl
fi |
|
|