spring-boot项目打包和自启动

springboot的打包方式有很多种。有打成war的,有打成jar的,也有直接提交到github,通过jekins进行打包部署的。这里主要介绍如何打成jar进行部署。不推荐用war,因为springboot适合前后端分离,打成jar进行部署更合适。

spring-boot项目打包

  1. 在application.properties当中配置端口

    1
    server.port=8080
  2. pom.xml添加配置,已经配置过可忽略

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <build>
    <plugins>
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
    <!--配置主类入口-->
    <mainClass>top.Sogrey.MainApplication</mainClass>
    </configuration>
    </plugin>
    </plugins>
    </build>
  3. 项目右键->Run As->Maven clean 先清理

  4. 项目右键->Run As->Maven install Maven执行打包

    spring-boot-项目打包

    等待出现BUILD SUCCESS字样,打包成功,在项目根目录target下查看生成的jar文件。

运行jar包

执行命令:

1
java -jar myProject.jar

添加到系统自启动

Windows

准备工具:winsw,是一个可以将任何应用程序注册成服务的软件

  1. 将下载的WinSW.NET4.exe与springboot项目打包的jar包(比如:myProject.jar)放在同一个文件夹中,并将WinSW.NET4.exe重命名为与jar文件同名,比如:myProject.exe

  2. 同目录下创建同名的xml文件,比如,输入内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <configuration>
    <!--安装成Windows服务后的服务名-->
    <id>myProjectServiceID</id>
    <!--显示的服务名称-->
    <name>myProjectServiceName</name>
    <!--对服务的描述-->
    <description>此处可填写该服务的描述</description>
    <!--这里写java的路径,如何配置了环境变量直接写"java"就行-->
    <executable>java</executable>
    <!--Xmx256m 代表堆内存最大值为256MB -jar后面的是项目名-->
    <arguments>-Xmx256m -jar myProject.jar</arguments>
    <!--日志模式-->
    <logmode>rotate</logmode>
    </configuration>
  3. cmd到当前目录下,执行安装命令

    1
    myProject.exe install
  4. 命令提示符界面输入启动服务命令

    1
    net start myProjectServiceName
  5. 打开系统服务功能:运行——输入services.msc,即可看见自己命名的服务myProjectServiceName,自启动就好了,可重启系统再次查看系统服务功能。

  6. 删除服务。既然启动了服务,我们也可以删除他,同样是两步:

    1
    2
    net stop myProjectServiceName #停止运行服务
    myProject.exe uninstall #删除服务
  7. 一键部署命令:

    1
    2
    3
    4
    5
    6
    7
    #例如myProjectStart.bat内容如下:
    myProject.exe install
    net start myProjectServiceName

    #例如myProjectStop.bat内容如下:
    net stop myProjectServiceName
    myProject.exe uninstall

    Linux

  8. 开启后台自执行

命令: nohup 详细文档说明可参考Linux nohup 命令

语法格式:

1
nohup Command [ Arg … ] [ & ]

例如:

1
nohup java -jar myProject.jar &

在终端如果看到以下输出说明运行成功:

1
appending output to nohup.out
  1. 停止运行,杀死进程

先使用以下命令查找到 nohup 运行脚本到 PID,然后使用 kill 命令来删除

1
ps -aux | grep "myProject.jar"

参数说明:

  • a : 显示所有程序
  • u : 以用户为主的格式来显示
  • x : 显示所有程序,不区分终端机

另外也可以使用 ps -def | grep "myProject.jar" 命令来查找。

找到 PID 后,就可以使用 kill PID 来删除。

1
kill -9  进程号PID

以下命令在后台执行 root 目录下的 runoob.sh 脚本,并重定向输入到 runoob.log 文件:

1
nohup /root/runoob.sh > runoob.log 2>&1 &

2>&1 解释:

将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。

  • 0 – stdin (standard input,标准输入)
  • 1 – stdout (standard output,标准输出)
  • 2 – stderr (standard error,标准错误输出)
文章目录
  1. spring-boot项目打包
  2. 运行jar包
  3. 添加到系统自启动
    1. Windows
    2. Linux
本站总访问量 | 本文总阅读量