以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即可。

Maven项目部署方案的更多相关文章

  1. eclipse中maven项目部署到tomcat

    其实maven项目部署到tomcat的方式很多,我从一开始的打war包到tomcat/webapps目录,到使用tomcat-maven插件,到直接使用servers部署,一路来走过很多弯路. 下面就 ...

  2. eclipse中maven项目部署到tomcat [转]

    其实maven项目部署到tomcat的方式很多,我从一开始的打war包到tomcat/webapps目录,到使用tomcat-maven插件,到直接使用servers部署,一路来走过很多弯路. 下面就 ...

  3. [转]maven项目部署到tomcat

    其实maven项目部署到tomcat的方式很多,我从一开始的打war包到tomcat/webapps目录,到使用tomcat-maven插件,到直接使用servers部署,一路来走过很多弯路. 下面就 ...

  4. maven项目部署到tomcat方法

    今天记录下,maven项目部署到服务器的过程 1.首先在ide中里将自己的maven项目打包 mvn clean install 2. 看是否需要修改war包的名字,如果要修改,就用命令 mv xxx ...

  5. 有关使用Maven常见问题总结(Eclipse中使用Maven、Maven项目部署到tomcat等问题)

    http://blog.csdn.net/sunitjy/article/details/42709311 ********************************************** ...

  6. maven项目部署到Repository(Nexus)

    目录[-] (一)下载并安装Nexus (二)配置Nexus Repository 说明: (三)在项目中配置Nexus Repository的信息 (四)发布到Nexus Repository 本文 ...

  7. maven项目部署到Tomcat

    1.安装Tomcat,地址:http://tomcat.apache.org,我安装的版本为9.0.0.M22,安装的目录为C:\apache-tomcat,设置环境变量CATALINA_HOME为C ...

  8. maven集成SSM项目,jetty部署运行——搭建maven项目部署jetty试运行(一)

    今天闲来没事采用maven集成一个SSM框架来复习复习,下面开始我的复习之旅,慢慢来,不着急,哈哈,不忙时候敲两下,整起来. 工具为Eclipse,首先需要建立一个maven工程,file右键new- ...

  9. Eclipse上将maven项目部署到tomcat,本地tomcat下,webapps下,web-inf下lib下没有jar包决绝方案

    右键项目选择properties  ,选择Deployment Assembly  , 右边点击Add 然后选择  Java Build Path Entries ,,,next  ,  选择Mave ...

随机推荐

  1. hibernate错题解析

    01 Hibernate错题分析   解析: 此题目考查的是对Hibernate中交叉连接的理解.HQL支持SQL风格的交叉连接查询,交叉连接适用于两个类之间没有定义任何关联时.在where字句中,通 ...

  2. 在sae配置django项目

    1:使用sae开发必须有sae帐号,自己注册吧: 2:在sae上新建立一个python项目: 3:建立完成之后新建一个版本,即版本1: 4:获取svn的地址在eclipse中check下来: 5:注意 ...

  3. c语言10个经典小程序

    [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. ...

  4. javasscript学习笔记 之 数组学习二 数组的所有方法

    1.push() 和 pop()  栈的方法 后进先出 push() 该方法是向数组末尾添加一个或者多个元素,并返回新的长度. push()方法可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返 ...

  5. 验证docker的Redis镜像也存在未授权访问漏洞

    看到了这篇老外的博客:Over 30% of Official Images in Docker Hub Contain High Priority Security Vulnerabilities于 ...

  6. ORACLE查看数据文件-控制文件-日志文件-表空间信息

    1.查看当前数据库中的所有用户:select username from dba_users; 2.查看当前会话登录的用户:show user或select username from user_us ...

  7. <.net>委托初探

    最近在学<.net深入体验与实战精要>. 今天就来初步讲解下委托. 一句话:委托定义了方法类型,可以将方法当做另一个方法的参数进行传递.委托包涵的只是方法的地址,而不是数据.类似于c指针. ...

  8. 无法从带有索引像素格式的图像创建graphics对象(转)

    大家在用 .NET 做图片水印功能的时候, 很可能会遇到 “无法从带有索引像素格式的图像创建graphics对象”这个错误,对应的英文错误提示是“A Graphics object cannot be ...

  9. 如何在pl/sql developer 7运行到oracle存储过程设置断点的地方

    如何高效调试oracle存储过程,尤其是父子网状调用的存储过程 1,在需要设置断点的oracle存储过程处设置断点         如何设置断点:直接在某行oracle存储过程处单击行首,会在行首显示 ...

  10. jquery颜色渐变

    http://files.cnblogs.com/handsomer/jquery.animate-colors-min.js