记得两年前实习的时候,继哥说,一个程序员如果把一些范畴内的事情做得完美,其他人会少很多事情,包括测试,运维,方便自己,方便大家。。这次有机会将一个项目进行重构,并进行前后端分离,分析了一些需求和后期的规划后,决定放弃以前“肥大”的springMVC那一套东西,采用近两年越来越火的微服务架构试一试,当然,首当其冲的就是采用spring-boot来担当重任了。前期的需求都已经完成,本次测试通过(强烈建议java程序员们自己写好单元测试,这将使我们后面的开发和维护变得简单,虽然前期可能要花点功夫,但是值得),准备放到生产环境,这时才发现,各种不便,因为一些设置参数,启动,停止都不方便,所以就决定写好脚本,方便使用,基于这个愿意,有了本篇文章,这里分享一个可以通用的shell脚本(PS:我也是通过别人的版本修改过来的),考虑一些对于shell脚本不熟悉的人,这里我将选取一些做出详细解释。好,话不多少,先直接上启动脚本。
1、项目目录结构
按照maven的规范,一般java的脚本会放在:src-->main-->scripts目录下面。
maven插件打包完的目录通常是这样:
根目录
|----bin //放置shell脚本
|----lib //放置java项目的依赖jar包
|----*****-***.jar //本次项目要发布的核心jar包
|----conf //放置项目的配置文件
一般java的项目会把依赖的jar包,和要执行的jar包,以及配置文件都放到classpath路径下面。
2、启动脚本
1 #!/bin/bash2 # version: 1.0.0
3 # modify: 2016/07/13
4
5 cd `dirname $0` #这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外)。6 BIN_DIR=`pwd` #得到当前的路径,即:项目根路径下的bin目录7 cd .. #返回到项目的根目录8 DEPLOY_DIR=`pwd` #将根目录保存下来9 CONF_DIR=$DEPLOY_DIR/conf #将配置文件的目录保存下来10 SERVER_NAME=`basename $DEPLOY_DIR` #获取到当前目录的名称,basename 命令会将路径截取根路径,比如:basename /data/had/hadoop 得到的结果是:hadoop,由此作为项目的名称11 PIDS=`ps -ef | grep java | grep "