Maven項目部署方案


以xbank項目做為應用背景,簡單說明一下Maven項目的部署方案:

1、項目說明

xbank基礎服務端的11個子項目均采用Maven搭建:

 

其中各項目功能設計如下:

froad-xbank-server-api:提供web端對外調用接口

froad-xbank-server-base:基礎部分嗎

froad-xbank-server-common:server端公共類

froad-xbank-server-core:核心服務

froad-xbank-server-filter-api:core調用filter端的接口

froad-xbank-server-filter-taizhou:銀行適配器服務

froad-xbank-server-handler:數據庫映射層

froad-xbank-server-manager-api:管理平台api接口

froad-xbank-server-manager:管理平台服務

froad-xbank-server-task:定時器服務

froad-xbank-server-transfer:數據遷移服務

 

因maven項目開發時依賴公司中央倉庫或本地倉庫,故工程在服務器獨立部署運行時,需將工程打包並提取依賴包,建立對應目錄存放配置文件。

Maven項目提取依賴包的方法:

工程打包使用maven的package命令;提取工程依賴包,可選中工程右鍵àrun asàMaven build…àEdit Configuration窗口的Goals命令行輸入以下命令:

dependency:copy-dependencies -DoutputDirectory=./lib -DincludeScope=runtime

執行該命令時,會在工程根目錄下創建lib目錄用於存放所依賴jar包。

 

2、項目部署

部署到應用服務器時,應生成如下目錄結構:(以xbank_core核心為例)

所有應用均部署在/data/tz_xbank/目錄下

|----/data/tz_xbank/xbank_core

|--------startup.sh文件: 應用啟動腳本

|--------shutdown.sh文件: 應用停止腳本

|--------lib目錄: 存放依賴的jar包

|--------app目錄: 存放模塊應用的jar

|--------config目錄:存放各個配置文件

|------------init.properties文件: 模塊初始配置文件, 主要配置監聽端口, 日志存放目錄

|------------jdbc_taizhou.properties文件: 配置MySQL數據庫(采用mycat代理)的連接信息

|------------logConfig.xml文件: 日志系統相關配置

|------------redis.properties文件: 配置redis緩存連接信息

|------------thrift.properties文件: server后台各個模塊thrift接口互相調用的地址信息

|------------client_id_list.xml文件: 銀行標識配置表

所有日志均在(由之前提到的init.properties中配置)

 

啟動腳本startup.sh:

#!/bin/sh
print_green () { echo -e "\033[1;32;48m$1 \033[0m";} #綠色字
print_yellow () { echo -e "\033[1;33;48m$1 \033[0m";} #黃色字
JAVA_HOME=/usr/local/jdk1.6.0_45
PATH=$JAVA_HOME/bin:$PATH
JRE_HOME=$JAVA_HOME/jre
export JAVA_HOME PATH JRE_HOME
java -version
DIR=`dirname $0`
cd $DIR
DIR=`pwd`
echo =============================
echo $DIR
echo APP: $DIR/app/*.jar
echo =============================

ps -ef|grep $DIR|grep -v grep|grep -v startup.sh >/dev/null 2>&1
if [ $? -ne 0 ];then
     nohup java -Djava.rmi.server.hostname=10.24.248.215 -Dcom.sun.management.jmxremote.port=9006 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Xms256m -Xmx1024m -XX:-UseGCOverheadLimit -XX:PermSize=32M -XX:MaxPermSize=128M -cp $DIR/lib/*:app/froad-xbank-server-filter-taizhou-0.0.1-SNAPSHOT.jar com.froad.thrift.XbankFilterMain > logs/xbank-filter.log 2>&1 &
    echo "Start output to logs/xbank_filter.log"

    PID=`ps -ef|grep $DIR|grep -v grep|awk '{print $2}'`
    print_green "PID: $PID"

else

    PID=`ps -ef|grep $DIR|grep -v grep|awk '{print $2}'`
    print_yellow "already started PID: $PID"

fi

 

停止腳本shutdown.sh:

#!/bin/sh
print_green () { echo -e "\033[1;32;48m$1 \033[0m";} #綠色字
print_yellow () { echo -e "\033[1;33;48m$1 \033[0m";} #黃色字

DIR=`dirname $0`
cd $DIR
pwd
DIR=`pwd`
PID=`ps -ef|grep $DIR|grep -v grep|grep -v shutdown.sh|awk '{print $2}'`
if [ -n "$PID" ];then
echo $PID
kill -9 $PID >/dev/null 2>&1
sleep 1
ps -ef|grep $DIR|grep -v grep|grep -v shutdown.sh >/dev/null 2>&1
    if [ $? -ne 0 ];then
    print_green "Shutdown $DIR success!!!"
    exit 0
    else
    print_yellow "Shutdown $DIR fail!!!"
    exit 1
    fi
else
print_green "$DIR already shutdown!!!"
exit 1
fi

 

按以上結構部署完之后,給相應的啟動腳本(startup.sh)和停止腳本(shutdown.sh)添加執行權限:

chmod a+x *.sh即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM