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即可。
Maven项目部署方案的更多相关文章
- eclipse中maven项目部署到tomcat
其实maven项目部署到tomcat的方式很多,我从一开始的打war包到tomcat/webapps目录,到使用tomcat-maven插件,到直接使用servers部署,一路来走过很多弯路. 下面就 ...
- eclipse中maven项目部署到tomcat [转]
其实maven项目部署到tomcat的方式很多,我从一开始的打war包到tomcat/webapps目录,到使用tomcat-maven插件,到直接使用servers部署,一路来走过很多弯路. 下面就 ...
- [转]maven项目部署到tomcat
其实maven项目部署到tomcat的方式很多,我从一开始的打war包到tomcat/webapps目录,到使用tomcat-maven插件,到直接使用servers部署,一路来走过很多弯路. 下面就 ...
- maven项目部署到tomcat方法
今天记录下,maven项目部署到服务器的过程 1.首先在ide中里将自己的maven项目打包 mvn clean install 2. 看是否需要修改war包的名字,如果要修改,就用命令 mv xxx ...
- 有关使用Maven常见问题总结(Eclipse中使用Maven、Maven项目部署到tomcat等问题)
http://blog.csdn.net/sunitjy/article/details/42709311 ********************************************** ...
- maven项目部署到Repository(Nexus)
目录[-] (一)下载并安装Nexus (二)配置Nexus Repository 说明: (三)在项目中配置Nexus Repository的信息 (四)发布到Nexus Repository 本文 ...
- maven项目部署到Tomcat
1.安装Tomcat,地址:http://tomcat.apache.org,我安装的版本为9.0.0.M22,安装的目录为C:\apache-tomcat,设置环境变量CATALINA_HOME为C ...
- maven集成SSM项目,jetty部署运行——搭建maven项目部署jetty试运行(一)
今天闲来没事采用maven集成一个SSM框架来复习复习,下面开始我的复习之旅,慢慢来,不着急,哈哈,不忙时候敲两下,整起来. 工具为Eclipse,首先需要建立一个maven工程,file右键new- ...
- Eclipse上将maven项目部署到tomcat,本地tomcat下,webapps下,web-inf下lib下没有jar包决绝方案
右键项目选择properties ,选择Deployment Assembly , 右边点击Add 然后选择 Java Build Path Entries ,,,next , 选择Mave ...
随机推荐
- (转)Iphone数组一些基础操作 NSArray/NSMutableArray
/******************************************************************************************* NSArray ...
- 【css3+JavaScript】:一个优雅的对话框
实现效果: 演示地址:http://codepen.io/anon/pen/BNjYrR ======2015/5/11====== 优化滚动条(scroll):默认的滚动条太丑,忍不住优化下 ::- ...
- KVO详解
NSKeyValueObserving非正式协议定义了一种机制,它允许对象去监听其它对象的某个属性的修改. 我们可以监听一个对象的属性,包括简单属性,一对一的关系,和一对多的关系.一对多关系的监听者会 ...
- python之面向对象(一)
python编程分为三个阶段: 面向过程编程:根据业务逻辑从上到下垒 函数式编程:将某功能进行函数封装,使用时调用函数即可,减少代码重复量 面向对象编程:对函数进行分类和封装 理论上我们是比较鄙视面向 ...
- js html5 仿微信摇一摇
看微信摇一摇之后忽然想知道他是怎么写的.于是就在网上查了一些资料,有些是借鉴别人的.大家共同学习啊 先放代码 <body onload="init()"> <p& ...
- android码农神器 偷懒工具 android懒人框架 LoonAndroid 3 讲解
LoonAndroid 3.0 Loonandroid是一个注解框架,不涉及任何UI效果,目的是一个功能一个方法,以方法为最小颗粒度对功能进行拆解.把功能傻瓜化,简单化,去掉重复性的代码,隐藏复杂的实 ...
- C#中DataTable转化JSON
[WebMethod(Description = "将一个DataTable对象转化成JSON")] public string GetJSON() { JavaScriptSer ...
- OpenGL ES 2.0 光照
基本的光照 光照分成了3种组成元素(3个通道):环境光.散射光以及镜面光. 材质的反射系数实际指的就是物体被照射处的颜色,散射光强度指的是散射光中的RGB(红.绿.蓝)3个色彩通道的强度. 环境光 指 ...
- NDK编译Python2.7.5
[背景] 网上有一些ndk编译python的做法,但按照教程做总是不成功,可能是环境版本不一样,导致很多地方的配置都不成功. 网上的教程大多只有做法,没有解释,即使按照教程编译成功,很多细节都不知道为 ...
- SQL 标准中的四种隔离级别
READ UNCOMMITED(未提交读) 在RERAD UNCOMMITED级别,事务中的修改,即使没有提交,对其他事务也都是可见的.事务可以读取未提交的数据,这也成为脏读(Dirty Read). ...