【AgileTC】_Linux上部署项目与查看日志

【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
    @Autowired   
    @Lazy
    private ClassA classA;
    1
    2
    3
    @Autowired 
    @Lazy
    private ClassB classB;