微服务: 部署服务
简介
在 微服务系列 文章中,跟大家从环境搭建、Web工程创建、提供Restful接口、热部署、Git使用以及Swagger生成文档分享了SpringBoot的入门知识。今天继续分享如何使用IDEA和maven对工程进行打包操作,然后发布代码到服务器进行部署的过程。
大家有任何问题,或者文中有不正确的地方欢迎留言评论,共同进步,再次感谢大家的阅读。
IDEA 打包
在 File/Project Structure
打开视图,或者使用快捷键 Ctrl+Alt+Shift+S
打开视图。
打开的视图如下:
按照 1、2、3 步骤打开下面视图,如下:
配置该视图的内容,分别设置 Main Class
和 选择 JAR files
,如下:
这里特别要注意,选择生成 MANIFEST.MF
文件目录放到 resources
下面,默认会放在 main\java
目录下。
如果不修改这个目录,最终运行生成的 jar 文件,会报下面的错误:
1 | Invalid or corrupt jarfile {project_name}.jar |
配置完成后,点击 OK 关闭对话框即可。
接下来需要编译,点击 IDEA 的 Build 菜单,选择 Build Artifacts...
,如下截图:
点击 Build Artifacts...
后出现视图
第一次直接选择 Build 选项,后续可以选择 Rebuild 或者 Clean 选项,根据你的需要进行选择即可。
等待 IDEA 打包完成后,在工程文件中会生成 out
目录和 resources 目录下面生成 META-INF
目录和对应的文件,如下图所示:
在 springboot_jar
目录下面有打包成功的 jar 文件,即 springboot.jar
文件,另外也将 tomcat 等一些其他依赖包都打包到一起了。
打开终端,执行 java -jar springboot.jar
就可以运行该项目了。
如果发现由于端口被占用而无法启动的情况,可以查看端口占用情况:
1 | netstat -ano | findstr 8080 |
查到类似如下结果:
1 | TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 18948 |
这里演示的进程ID是 18948,强制关闭端口进程即可
1 | taskkill -F -PID 18948 |
部署到服务器
我使用虚拟机(Ubuntu)来简单介绍一下部署过程。虚拟机是 VMWare 其版本是 15.0.2
,Ubuntu 系统版本是 19.04
。如何安装虚拟机、如何在虚拟机中安装 Ubuntu 系统以及如何在 Ubuntu 中安装 Java 环境请大家自行查找资料完成,这里不赘述。
可以通过上面的方式(IDEA打包)完成后,将生成的 springboot_jar
目录拷贝到虚拟机的用户目录下,然后通过 java -jar springboot_jar/springboot.jar
来启动服务。
我们还可以通过 IDEA 的 maven 工具进行打包,步骤如下:
1、打开工程的maven视图
2、按照标红的1、2、3、4操作即可
成功后在 target 目录会生成对应的可执行的 jar 文件,该 jar 包包括了所有的 SpringBoot 相关的包如下图:
同理,复制 springboot-0.0.1-SNAPSHOT.jar
到虚拟机的用户目录,通过 java -jar springboot-0.0.1-SNAPSHOT.jar
运行服务即可。
查看 Ubuntu 的主机IP地址,可以通过 ifconfig
来获取,也可以在设置里面查找其IP地址。 ifconfig
需要按照 net-tools
,安装命令如下:
1 | sudo apt install net-tools |
我的虚拟机的IP地址是 192.168.142.128
,即 http://192.168.142.128:8080
是 Ubuntu 的 IP 地址和 Tomcat 的运行端口,回到 Windows 主机上面访问虚拟机的服务,通过下面图可以看出是成功的。
这里只是简单的介绍了一下如何将自己写的 SpringBoot 服务部署到服务器上面,在你的实际项目中部署没这么简单,我算是抛砖引玉吧,后续随着学习的深入我再跟大家分享一下在实际大项目中部署遇到的一些问题。
生活并没有那么复杂,要是你喜欢,大可以说我是在探索生命。