目前部署 spring boot 有没有什么更为简便的方法

2019-08-22 14:22:16 +08:00
 Perolong

我现在是将项目编译成 jar,然后上传到服务器,然后 nohup java -jar xx.jar &,不算麻烦,也不算简单,因为想要更新 spring boot 项目的代码,就需要重新编译,重新上传到服务器,kill pid 上一个 8080 的进程,再重新打一遍指令,比起 caddy 部署前端的 react 项目可以直接拉取 git 项目更新,还是繁琐了一些,唯一解就是自己写个 python 脚本么?

6082 次点击
所在节点    程序员
38 条回复
lllllliu
2019-08-22 16:36:00 +08:00
github/gitlab 有 webhook 呀,最简单的就是 push 之后触发 hook 然后,你可以写个脚本让他操作你想要做的事情。
jerry74
2019-08-22 16:56:57 +08:00
liiihhhh
2019-08-22 17:00:49 +08:00
上传 jar,pm2 start
limuyan44
2019-08-22 17:10:57 +08:00
以前搞过一个项目我写了个 shell,更新的时候 sh xx.sh 就好了。 拉代码-编译-打包-停服务-上传 jar-启动。
wongy
2019-08-22 17:26:14 +08:00
用的 appassembler-maven-plugin 打包成 tar.gz 超级实用。去年面了很多家公司,问了一下打包发布方式都是 jar。

去过一家公司用 docker 打包部署。
Seney
2019-08-22 17:30:19 +08:00
我是用 gitlab 代码推送到服务器就开始 build 然后 deploy
Unbelievable9
2019-08-22 17:35:54 +08:00
在 system.d 加入你的服务 相关配置可以参考 https://stackoverflow.com/questions/21503883/spring-boot-application-as-a-service
StarkWhite
2019-08-22 18:12:44 +08:00
热部署或热更新。
不过貌似 java 没有好的热部署方案,之前这个帖子讨论过了,里面 v 友给了好几种方案

Java 是不是没有好的热部署方案?
https://v2ex.com/t/585647
mritd
2019-08-22 18:26:36 +08:00
Docker + ci
JasperWong
2019-08-22 18:30:47 +08:00
jenkins
JRay
2019-08-22 19:39:54 +08:00
jenkins + 1
br00k
2019-08-22 20:32:13 +08:00
不想麻烦,又想简单。就直接在部署的服务器上部署一个 Jenkins 就好了,更新的时候就不用上传了。
liuxey
2019-08-23 09:17:40 +08:00
大致四步吧

git pull
maven package
docker build
docker run

另外:gitlab ci/cd 很好用
print1024
2019-08-23 10:35:10 +08:00
本地的话用这个:
wagon-maven-plugin
能直接上传到服务器并且可以配置命令
springboot 建议三方依赖和业务代码分离打包
StarkWhite
2019-08-23 12:24:15 +08:00
我公司也在用 Jenkins 自动打包
haitongz
2019-08-23 13:20:26 +08:00
考虑到可运维性最好使用专门的发布系统,简单点也可以使用 Jenkins/Gitlab
配合 ansible 脚本能够比较方便的上线和回滚
另外可以搭建 nexus 或者 jfrog artifactory 免费版作为制品管理仓库,不用每次都从源码编译
suijishu
2019-08-23 13:37:13 +08:00
使用阿里云效,20 人以内免费,现在公司的 8 个服务,都是用这个发布。特方便,可以试试。
hongye
2023-01-12 14:52:53 +08:00
有个疑问,为什么都想用 docker 包一层,不像安装 jdk 环境?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/594180

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX