文档章节

spring boot项目在linux下发布脚本

站在巨人的肩膀上奋斗
 站在巨人的肩膀上奋斗
发布于 2016/11/09 16:50
字数 596
阅读 47
收藏 0

方式一

1 xxx-service.jar解压

-rw-r--r--. 1 deploy deploy    462 Nov  1  2016 application.properties
drwxr-xr-x. 3 deploy deploy   4096 Nov  1  2016 com
-rw-r--r--. 1 deploy deploy 700416 Jun 19 19:20 console.log
-rw-r--r--. 1 deploy deploy    276 Nov  1  2016 datasource.properties
drwxr-xr-x. 3 deploy deploy   4096 Nov  1  2016 db
-rw-r--r--. 1 deploy deploy    768 Nov  1  2016 dubbo-consumers.xml
-rw-r--r--. 1 deploy deploy   2204 Nov  1  2016 xxx-memcache.xml
-rwxr-xr-x. 1 deploy deploy    250 Nov  1  2016 xxx-start.sh
drwxr-xr-x. 2 deploy deploy  12288 Nov  1  2016 lib
-rw-r--r--. 1 deploy deploy   1623 Nov  1  2016 logback.xml
-rw-r--r--. 1 deploy deploy    154 Nov  1  2016 memcached.properties
drwxr-xr-x. 3 deploy deploy   4096 Nov  1  2016 META-INF
drwxr-xr-x. 4 deploy deploy   4096 Nov  1  2016 mybatis
-rw-r--r--. 1 deploy deploy    461 Nov  1  2016 mybatis-config.xml
drwxr-xr-x. 3 deploy deploy   4096 Nov  1  2016 org

2 编写发布脚本xxx-service-start.sh,内容如下:

#!/bin/sh
/usr/local/jdk/bin/java -server -Xms64m -Xmx512m -XX:+UseConcMarkSweepGC -Dapplication=xxx-service org.springframework.boot.loader.JarLauncher >> /opt/logs/console.log &2>1
echo 'xxx-service start success '

3 执行脚本 sh  xxx-service-start.sh

方式二

不解压xxx-service.jar,直接使用

nohup java -jar xxx-service-impl-0.0.1.jar & 

方式三

1 新建目录/root/xxx-apigateway,然后到该目录下执行git clone url地址,克隆项目

2 新建文件deploy1.sh

#!/bin/bash
set -e
CODE_DIR=/root/xxx-apigateway
TARGET_DIR=/root/xxx-apigateway/apigateway/target
JAR_NAME=apigateway
function chkerr()
{
  if [ $? -ne 0 ]
  then
    echo $1
    exit 1
  fi
}

cd $CODE_DIR
chkerr "path not exists"
git pull
chkerr "git pull error"
mvn clean install -Dmaven.test.skip=true
chkerr "mvn error"
cd $TARGET_DIR
chkerr "no target dir"
jarFile="${JAR_NAME}-${xxx_VERSION_DEV}.jar"
if [ ! -f "$jarFile" ]
then
  echo "no jar file ${JAR_NAME}"
  exit 1
fi
curDate=`date '+%m%d'`
cp "$jarFile" /root/bin/${JAR_NAME}-$curDate.jar
cp "$jarFile" /root/bin/${JAR_NAME}.jar
cd /root/bin/
echo "stop..."
PID=$(ps -ef | grep java.*\.jar | grep ${JAR_NAME}  | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
    echo "already stopped"
else
    kill $PID
fi
sleep 5
echo "start..."
nohup java -Xmx256m -Xms128m -XX:MaxPermSize=128m -jar ${JAR_NAME}.jar --spring.profiles.active=local >> /dev/null 2>&1 &
echo "success"
exit 0

3 新建文件deploy2.sh

#!/bin/bash
set -e
function chkerr()
{
  if [ $? -ne 0 ]
  then
    echo $1
    exit 1
  fi
}

cd /root/xxx/xxx-xxx-server
chkerr "path not exists"
git pull
chkerr "git pull error"
mvn clean package -Plocal -U -DskipTests
chkerr "mvn error"
cd xxx-apigateway/target
chkerr "no target dir"
jarFile="xxx-apigateway-0.0.1-SNAPSHOT.jar"
if [ ! -f "$jarFile" ]
then
  echo "no jar file"
  exit 1
fi
curDate=`date '+%m%d'`
cp "$jarFile" /root/bin/xxx-apigateway-$curDate.jar
cp "$jarFile" /root/bin/xxx-apigateway-local.jar
cd /root/bin/
echo "stop..."
PID=$(ps -ef | grep java.*\.jar | grep 'xxx-apigateway-local'  | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
    echo "already stopped"
else
    kill $PID
fi
sleep 5
echo "start..."
nohup java -Xmx256m -Xms128m -XX:MaxPermSize=128m -jar xxx-apigateway-local.jar  >> /dev/null 2>&1 &
echo "success"
exit 0

4 以上两个文件内容基本一致,选其一即可

5 执行脚本

 

总结:以上三种方式,第三种方式相对来说较为方便,省去了每次打包、上传的麻烦,但脚本比较复杂。

© 著作权归作者所有

共有 人打赏支持
站在巨人的肩膀上奋斗
粉丝 9
博文 36
码字总数 9781
作品 0
海淀
程序员
Spring Boot 项目自动发布

Spring Boot 项目自动发布 Spring Boot 项目自动发布 简介 在公司从移动端转后端已经快一年了,使用的技术框架一直是Spring Boot,和以前大学时候基于Tomcat的不太一样。 这篇文章简单介绍下...

流水不腐小夏
04/24
0
0
spring boot executable jar/war 原理

spring boot executable jar/war spring boot里其实不仅可以直接以 的方式启动,还可以把jar/war变为一个可以执行的脚本来启动,比如。 把这个executable jar/war 链接到下面,还可以变为lin...

横云断岭
2016/04/03
0
0
spring boot踩坑记录之jar坑

初学springboot,感觉:好用 and 好坑。 在下使用spring boot 2.0版本,听闻该版本尚不稳定,1.58版本较为稳定。但我尚未发现有何不稳定。 大约用1-2天时间学习spring boot搭建出框架,编写项...

韩不会
07/28
0
3
IntelliJ IDEA 2018.2 EAP 发布,支持 Touch Bar

IntelliJ IDEA 2018.2 EAP 已发布:包含对 MacBook Touch Bar 的支持,对 Gradle 支持的改进,新图标,Spring Boot 及一些更新。 支持 Touch Bar 即将推出的 IntelliJ IDEA 2018.2 引入了 To...

达尔文
05/18
0
0
Spring Boot 项目自动发布与Supervisor

Spring Boot 项目自动发布与Supervisor Spring Boot 项目自动发布与Supervisor 前面写了一遍关于Spring Boot项目自动发布的文章,这里是Github地址。 还是受到不少欢迎的,有不少点赞的朋友,...

流水不腐小夏
06/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

文件的压缩与解压(linux)

Linux下*.tar.gz文件解压缩命令 1.压缩命令:   命令格式:tar -zcvf 压缩后文件名.tar.gz 被压缩文件名 可先切换到当前目录下。压缩文件名和被压缩文件名都可加入路径。 2.解压缩命令: ...

qimh
35分钟前
3
0
invalid character found in the request target 异常

这个异常时因为Tomcat 9不支持请求格式出现“{”等非法字符的问题 因为tomcat版本问题遇到的坑,记录一下。 问题 今天由于要测试一下订单详情页的异步查询,在本地起了一个服务,发送的请求是...

edwardGe
39分钟前
4
0
发现抓包软件fiddler的bug

1个请求他跳转之后,直接400,被拦在了Apache,使用fiddler 的,replay requests 是同样的结果,但是replay composer确是正常的。 也就是说这replay requests 是发原来的包,replay composer...

NLGBZJ
49分钟前
1
0
linux screen 命令详解

shell关闭后, 主机仍然运行 screen命令 启动jenkins以后, screen, 然后按ctrl+a 再按d 这样暂停了子界面, 这时候回到了父界面 用screen –ls查看目前子界面的状态 [root@free /]# screen -l...

SuShine
50分钟前
4
0
mac机器切换无线网络导致网页不能打开的问题

问题: 公司和家里使用不同的WI-FI,每次从家到公司时自动切换网络后,公司的许多地址不能访问, ping域名是可以ping同的,但是网页却打不开... 问题分析: 初步猜想是DNS缓存的问题? 对于MAC系统没...

Lennie002
53分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部