首页 > 代码库 > java服务器浅入浅出之简略的java程序发布
java服务器浅入浅出之简略的java程序发布
本篇将记录下一个简单的java程序在linux上的部署设置,以及发布脚本的编写。粗糙、简略。 //神奇!勿动
1.首先写了一个简单的java程序,一个死循环,不停地输出一句话。
2.把工程共享到svn上。
3.编写publish_test.sh脚本,实现svn源码的检出,调用ant编译、打包,以及其他准备操作。
<span style="font-size:18px;">. /home/testjava/publish/config.sh mkdir -p ${PUBLISH_TEST_SVN_ROOT} if [ `ls -la ${PUBLISH_TEST_SVN_ROOT} | wc -l` == 3 ] then svn checkout ${URL_SVN_TEST_ROOT} ${PUBLISH_TEST_SVN_ROOT} else svn update ${PUBLISH_TEST_SVN_ROOT} fi ant -buildfile ${PUBLISH_TEST_ROOT}/build.xml clean ant -f ${PUBLISH_TEST_ROOT}/build.xml mkdir -p ${PUBLISH_TEST_LOGS_ROOT} touch ${PUBLISH_TEST_LOG}</span>其中config.sh中是预先声明好的一些路径信息。
4.利用ant将工程编译、打包。这里要编写配置文件。我用的默认名字build.xml。
<span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8" standalone="no"?> <project basedir="." default="build" name="test"> <property environment="env"/> <property name="root.path" value=http://www.mamicode.com/"/home/testjava/publish"/>>
这里的clean可以设置为build的依赖,我没有这么写而已。 javac将源码编译成class,jar将class打包成jar包。
5.编写以服务器形式运行jar包工程的脚本。start.sh
<span style="font-size:18px;">java -Dserver_name=/home/testjava/publish/testjava/output -Djava.net.preferIPv4stack=true -server -Xmx1g -Xmn512m -cp /home/testjava/publish/testjava/output/jar/* test.system.Main</span>6.建立一个系统服务testjava,目标是运行start.sh。
首先在/etc/init.d 下写服务脚本testjava.sh。
<span style="font-size:18px;">#!/bin/sh #chkconfig: 35 20 80 #description: testjava server EXEC_PATH=/home/testjava/publish/testjava/output EXEC=start.sh pid="" if [ -x $EXEC+path/%EXEC ]; then echo "project not found..." exit 1 fi getpid() { pid=`ps axjf | grep "Dserver_name=${EXEC_path}" | grep -v "grep" | awk '{print $2}'` } stop() { getpid if [ -z ${pid} ] then echo "ERROR : server has not been started..." else echo "server is stoping..." kill -15 ${pid} fi } start() { getpid if [ -z ${pid} ] then echo "server is starting..." cd ${EXEC_PATH} ./${EXEC} >>logs/log 2>&1 & else echo "ERROR : server has been started already..." fi } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) status ;; *) echo "Usage: service $EXEC {start|stop|restart|status}" exit 1 esac exit 0</span>
其中log重定向时 2>&1 是将错误信息转作普通信息输出到标准输出 &是将这条语句在后台运行。最后 chkconfig --add autoruntest 添加服务。
7.编写最终的启动、停止脚本。
startall.sh
service testjava.sh startstopall.shservice testjava.sh stop至此,一个简单的发布流程就完成了。每当版本更新需要发布时,如果服务器在运行中,先运执行stopall.sh。然后执行publish_test.sh发布。最后执行startall.sh启动。运行时log在预先重定向的logs/log文件中查看。
==================================================================== -- end
java服务器浅入浅出之简略的java程序发布
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。