新增Ant远程部署deploy.xml脚本

This commit is contained in:
jinyu
2015-03-25 20:25:56 +08:00
parent e4e05e5370
commit 5557141b93
7 changed files with 159 additions and 16 deletions
+17 -3
View File
@@ -37,12 +37,22 @@ weixin4j-qy-server
return new ResponseMessage(new Text("Hello World!"), inMessage);
}
3.`mvn package`,得到一个zip的压缩包,解压到启动目录(见`src/main/startup.sh/APP_HOME`)
3.`mvn package`,得到一个zip的压缩包,解压(也可使用deploy.xml部署到远程服务器)到`启动目录`
4.启动netty服务(`com.foxinmy.weixin4j.mp.startup.WeixinQyServerBootstrap`)
sh startup.sh start
> 1.服务的启动脚本[startup.sh](./src/main/startup.sh)需要被注意到,有`JAVA_HOME`和`APP_HOME`两个参数.
> 2.其中`JAVA_HOME`参数值指的是java运行环境(jre|jdk)的安装根目录,如果与脚本中的值不一致,可以改更为实际的路径或者使用`ln -s target /usr/local/java`软链接命令创建期望的链接.
> 3.其中`APP_HOME`参数值指的是本服务的启动目录,此目录需要被正确事先创建好,同时[`deploy.xml`](./deploy.xml)远程部署命令也依赖于此.
> 4.Ant远程部署[`deploy.xml`](./deploy.xml)的正确执行需要[`jsch`](http://www.jcraft.com/jsch/)包的支持,下载jar包将其引入执行Ant命令时的`classpath`中.
> 5.一般来说*Action事件处理类中应该有自己的实际业务类(`service`)需要被注入,可以使用org.springframework.context.ApplicationContext#getBeansWithAnnotation(ActionAnnotation.class)函数获取Action集合后再来实现[`AbstractActionMapping`](https://github.com/foxinmy/weixin4j/blob/master/weixin4j-base/src/main/java/com/foxinmy/weixin4j/action/mapping/AbstractActionMapping.java).
更新LOG
-------
* 2014-11-19
@@ -57,4 +67,8 @@ weixin4j-qy-server
+ 增加用户进入应用的callback事件
+ 调整回调模式下的首次验证的签名方式
+ 调整回调模式下的首次验证的签名方式
* 2015-03-25
+ 新增deploy.xml远程部署ant脚本
+54
View File
@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="qy-server" default="deploy" basedir=".">
<property name="app.home" value="." />
<property name="target.home" value="${app.home}/target" />
<property name="zip.name" value="weixin-qy-server-bin.zip" />
<property name="host" value="服务器IP" />
<property name="pwd" value="服务器口令" />
<property name="main.dir" value="服务部署的主目录,如/usr/local/weixin" />
<property name="sub.dir" value="服务部署的子目录,如weixin-qy-server" />
<target name="removeZip">
<echo>
${host}:删除[${zip.name}]...
</echo>
<sshexec host="${host}" username="root" password="${pwd}" trust="true" command="cd ${main.dir};pwd;rm -rf ${main.dir}/${zip.name};" />
</target>
<target name="uploadZip" depends="removeZip">
<echo>
${host}:上传[${zip.name}]...
</echo>
<scp file="${target.home}/${zip.name}" todir="root:${pwd}@${host}:${main.dir}" trust="true" />
</target>
<target name="shutdownService" depends="uploadZip">
<echo>
${host}:停止[${sub.dir}]...
</echo>
<sshexec host="${host}" username="root" password="${pwd}" trust="true" command="cd ${main.dir}/${sub.dir};pwd;sh startup.sh stop;rm -rf ${main.dir}/${sub.dir};" />
</target>
<target name="unzipProject" depends="shutdownService">
<echo>
${host}:解压${zip.name}...
</echo>
<sshexec host="${host}" username="root" password="${pwd}" trust="true" command="cd ${main.dir};pwd;unzip ${zip.name};" />
</target>
<target name="startupService" depends="unzipProject">
<echo>
${host}:启动服务...
</echo>
<sshexec host="${host}" username="root" password="${pwd}" trust="true" command="cd ${main.dir}/${sub.dir};pwd;sh startup.sh start;" />
</target>
<target name="build" depends="startupService">
<echo>
target.home = ${target.home}
file.zip = ${target.home}/${zip.name}
</echo>
</target>
<target name="deploy" depends="build">
</target>
</project>