【AgileTC】_Linux上部署项目与查看日志
1.运用idea将springboot项目打包为jar包
在pom.xml文件中添加插件如下:
1
2
3<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5.4.RELEASE</version>在idea界面maven工具中点击clean清除之前的编译文件;
在idea界面maven工具中点击package编译项目并打包成jar包;
2.springboot项目部署在linux系统上
- 使用远程控制软件Termius将jar通过xftp传输到linux主机上,并删除原久版本的该项目jar包;
- 通过
ps -ef |grep case-server命令查看当先正在运行的该case-server项目的pid,然后使用kill -9 pidnum命令杀死原运行项目;lsof -i tcp:8094可用于查看8094端口正在运行的项目及其pid,这个命令也非常有用;cat nohup.out | grep profiles可用于查询nohup.out文件中包含profiles字段的行;
- 在远程控制台上cd到该jar包所在文件夹,输入命令
nohup java -jar case-server-1.0-SNAPSHOT.jar --spring.profiles.active=dev & tail -f nohup.out,其中前一句用于运行jar包项目,后一句用于将jar包项目运行时的控制台日志信息显示在远程控制台上;- nohup命令用于在系统后台不挂断地运行命令,退出终端也不会影响程序的运行,并且会将控制台日志信息输出到一个名叫nohup.out的文件保存在当前目录下。
3.启动项目报错存在依赖循环问题
有一个ServiceA需要调用ServiceB的方法,那么ServiceA就依赖于ServiceB,那在ServiceB中再调用ServiceA的方法,就形成了循环依赖,Spring在初始化bean的时候就不知道先初始化哪个;
最好的方法是重构代码,进行解耦,但是这不是快速解决方法;
使用@Lazy注解是最快的方法,通过延迟依赖的bean的加载,从而解决循环依赖的问题:
1
2
3
private ClassA classA;1
2
3
private ClassB classB;