ubuntu脚本自动部署jar包java

ubuntu基础环境配置

系统环境最好不要用最新的(18.04),稳定的是16.04(推荐)
nginx
JDK
以下环境根据自己需求安装
mysql
rabbitmq3.6及延迟队列
redis
环境安装参考

java项目主要相关情况

security + JWT 微服务系统,打包成 .jar 的形式

ubuntu中项目service的配置

将jar的执行命令写成ubuntu的service脚本,以便 systemctl 管理
journalctl命令大全
journalctl命令可以很方便的查看项目的日志

service的配置

1.进入system目录

cd /etc/systemd/system/

2.创建 .service 文件 例如: 您的项目名.service
以transfer.service为例 aliyun.service阿里云服务器系统自带

cp aliyun.service transfer.service

3.删除transfer.service所有内容,修改为

[Unit]
Description=transfer
After=syslog.target
After=network.target[Service]
User=root
Type=simple

[Service]
ExecStart=/usr/bin/java -jar /root/project/transfer.jar --spring.profiles.active=pro
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=transfer

[Install]
WantedBy=multi-user.target

根据自己项目情况修改
Description :项目描述
ExecStart :执行jar的命令
/root/project/transfer.jar jar包所在目录
--spring.profiles.active=pro 项目执行时运行哪一个yml配置文件
SyslogIdentifier :项目日志名称
其余的全部默认

启动service

systemctl start transfer.service

查看service状态

systemctl status transfer.service

停止service

systemctl stop transfer.service

查看service日志

journalctl -f -u transfer.service -n 1000
更多详细命令参考
linux journalctl 命令

nginx的配置

1.进入nginx配置目录

cd /etc/nginx/sites-enabled/

2.配置

server {
        listen 80;
        server_name xxx.xxx.com;

    location /transfer {
       proxy_pass http://localhost:8086/transfer;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Forwarded-Port $server_port;
    }
}

transfer :为项目名
8086 :为项目启动的端口号

通过脚本文件自动部署项目

根据项目运行环境在服务器安装相关环境
例:项目中用到 gradle,maven,git

  1. 在服务器安装环境
  • gradle或者maven并配置好环境变量
  • git
  1. 编写.sh脚本
    创建server.sh,并赋予执行权限
#! /bin/bash
systemctl stop transfer.service #停止服务
cd /root/transfer/code/transfer #移动到目录,根据自己的情况来
git pull #拉代码,需要按装git,并配置
gradle clean bootjar #打包
cp -f /root/transfer/code/transfer/build/libs/transfer-*.jar /root/transfer/transfer.jar #复制到你的目录,这里根据自己的情况来
systemctl start transfer.service #启动服务
  1. 测试脚本

创建项目存放文件夹 /root/transfer/code
在code下 执行 git clone 项目地址,验证git是否正常执行
gradle clean bootjar 打包项目,测试打包是否成功。注意:gradle版本要与项目中使用的版本一致,否则打包可能失败
执行没有问题,则脚本可用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 每天生活工作中,不乏太多琐事,猜忌或可能躺着都中枪的各种负能量。 生活,工作其实都可以很美好。人心本来向善,可能因...
    芊萩阅读 1,833评论 14 2
  • 今天是大年初七,大多数人新年开始上班的第一天,也是我和孩子劫后余生的一天。 一大早,我还在睡梦中,睡在隔壁屋的儿子...
    容玲阅读 3,126评论 4 1
  • 今天一天的培训让我想起来前两天课堂上一个同学说的一句话:家是责任,是爱,是最后的港湾。虽然当时大家都在笑,但是也说...
    人生若只如初见_bb05阅读 1,131评论 0 0
  • 不要总想着旅行,而忘了脚下的路。不要盲目的说走就走,辞掉工作跑到他乡流浪,在生活和旅行当中找到属于你的契合点,最好...
    周小的文字阅读 3,680评论 0 8