记录打包部署Springboot项目到Windows环境
作者:mmseoamin日期:2023-12-25

Springboot项目开发完成后要做的工作就是部署了,这里记录下打包部署的过程。这个项目是一个SpringBoot多模块项目,包含了一个父工程,一个子模块和一个工具模块。其中子模块里有启动类,而工具模块没有。因此这三者的pom文件不一样。

1. 打包

1.1 准备

用Idea加载开发好的springboot项目。目录结构截图如下:

记录打包部署Springboot项目到Windows环境,第1张

修改配置文件,按生成环境prod配置相关的redis,mysql参数,不赘述。

记录打包部署Springboot项目到Windows环境,第2张

1.2. pom整理

具体pom整理如下,并附上具体pom。

a.父项目中的包类型中填pom,子类中的填jar,

b.父项目要用模块包含子项目。

   

        gs-dp-common

        gs-dp-admin

   

c.子项目(带启动类)的pom中的plugin修改如下。

 

   

       

           

               

                org.springframework.boot

                spring-boot-maven-plugin

           

       

       

           

                src/main/java

               

                    **/*.xml

               

                false

           

           

           

               

                src/main/resources

               

                    **/*

               

           

       

   

  • 父项目Pom
    
    
        
            org.springframework.boot
            spring-boot-starter-parent
            2.3.0.RELEASE
             
        
        4.0.0
        cn.com.gangsi
        gangsi-dp-service
        pom
        gs-1.0.0
        
            gs-dp-common
            gs-dp-admin
        
        
            1.2.56
            2.0.2
            2.9.2
            1.9.0
            1.1.22
            1.18.6
            2.1.0
            1.2.8
            3.1
            1.9.3
            3.7
            1.11
            5.6.3
            4.5.13
            4.5.16
            3.0.0
            4.18.0.ALL
            1.2.5
            8.0.16
            2.0.1.Final
            1.60
            1.6.1
            3.17
        
        
            
                org.springframework.boot
                spring-boot-starter-web
            
            
                org.springframework.boot
                spring-boot-starter-test
                test
            
            
                org.springframework.boot
                spring-boot-starter-actuator
            
            
                org.springframework.boot
                spring-boot-starter-data-redis
            
            
                org.springframework.boot
                spring-boot-starter-validation
            
            
            
                org.springframework.boot
                spring-boot-starter-websocket
            
            
                io.springfox
                springfox-swagger2
            
            
                io.springfox
                springfox-swagger-ui
            
            
                com.github.xiaoymin
                swagger-bootstrap-ui
            
        
        
            
                
                    org.projectlombok
                    lombok
                    ${lombok.version}
                
                
                    io.springfox
                    springfox-swagger2
                    ${swagger-ui.version}
                
                
                    io.springfox
                    springfox-swagger-ui
                    ${swagger-ui.version}
                
                
                    com.github.xiaoymin
                    swagger-bootstrap-ui
                    ${swagger-ui-bootstrap.version}
                
                
                    com.github.xiaoymin
                    knife4j-spring-boot-starter
                    ${knife4j.version}
                
                
                
                    com.alibaba
                    druid-spring-boot-starter
                    ${druid-version}
                
                
                    org.springframework.boot
                    spring-boot-starter-jdbc
                
                
                    org.mybatis.spring.boot
                    mybatis-spring-boot-starter
                    ${mybatis.version}
                
                
                
                    org.springframework.boot
                    spring-boot-configuration-processor
                    true
                
                
                
                    org.springframework.boot
                    spring-boot-starter-aop
                
                
                    org.springframework.boot
                    spring-boot-starter-data-redis
                    2.0.5.RELEASE
                
                
                    org.apache.commons
                    commons-pool2
                
                
                    org.apache.commons
                    commons-lang3
                    ${commons.lang.version}
                
                
                
                    commons-codec
                    commons-codec
                    ${commons-codec.version}
                
                
                
                    com.alibaba
                    fastjson
                    ${fastjson.version}
                
                
                    commons-httpclient
                    commons-httpclient
                    ${commons-httpclient.versoin}
                
                
                    commons-beanutils
                    commons-beanutils
                    ${commons-beanutils.version}
                
                
                    cn.hutool
                    hutool-all
                    ${hutool.version}
                
                
                    org.apache.httpcomponents
                    httpclient
                    ${httpclient.version}
                
                
                    mysql
                    mysql-connector-java
                    ${mysql.version}
                
                
                    javax.validation
                    validation-api
                    ${validation-api.version}
                
                
                
                    com.aliyun
                    aliyun-java-sdk-core
                    ${aliyun-java-sdk-core.version}
                
                
                
                    com.aliyun
                    aliyun-java-sdk-sts
                    ${aliyun-java-sdk-sts.version}
                
                
                
                    com.github.pagehelper
                    pagehelper-spring-boot-starter
                    ${pagehelper.version}
                
                
                
                    org.bouncycastle
                    bcprov-jdk15on
                    ${bouncycastle.version}
                
                
                
                    dom4j
                    dom4j
                    ${dom4j.version}
                
                
                
                    org.apache.poi
                    poi
                    ${poi.version}
                
                
                    org.apache.poi
                    poi-ooxml
                    4.1.2
                
                
                    org.apache.poi
                    poi-ooxml-schemas
                    4.1.2
                
                
                    com.alibaba
                    easyexcel
                    2.0.0-beta6
                
            
        
        
            
                
                    org.springframework.boot
                    spring-boot-maven-plugin
                
            
        
    
    • 子项目(带启动类的项目)Pom
      
      
          
              gangsi-dp-service
              cn.com.gangsi
              gs-1.0.0
          
          4.0.0
          cn.com.gangsi
          gs-dp-admin
          jar
          gs-1.0.0
          
              
                  cn.com.gangsi
                  gs-dp-common
                  gs-1.0.0
              
              
                  org.projectlombok
                  lombok
              
              
                  com.alibaba
                  druid-spring-boot-starter
              
              
                  mysql
                  mysql-connector-java
              
              
              
                  cn.hutool
                  hutool-all
              
              
              
                  com.github.pagehelper
                  pagehelper-spring-boot-starter
              
              
                  javax.validation
                  validation-api
              
              
                  com.github.whvcse
                  easy-captcha
                  1.6.2
              
              
              
                  org.apache.poi
                  poi
                  3.17
              
              
                  org.apache.poi
                  poi-ooxml
                  3.17
              
              
                  org.apache.poi
                  poi-ooxml-schemas
                  3.17
              
              
                  com.alibaba
                  easyexcel
                  2.2.3
              
              
                  org.apache.thrift
                  libthrift
                  0.9.3
                  compile
              
              
                  org.springframework
                  spring-aspects
              
          
          
          
              
                  
                      
                      org.springframework.boot
                      spring-boot-maven-plugin
                  
              
              
                  
                      src/main/java
                      
                          **/*.xml
                      
                      false
                  
                  
                  
                      
                      src/main/resources
                      
                          **/*
                      
                  
              
          
      
      • 子项目(工具类)Pom
        
        
            
                gangsi-dp-service
                cn.com.gangsi
                gs-1.0.0
            
            4.0.0
            cn.com.gangsi
            gs-dp-common
            jar
            gs-1.0.0
            
                
                    org.springframework.boot
                    spring-boot-starter-data-redis
                
                
                    org.springframework.boot
                    spring-boot-starter-amqp
                
                
                    org.projectlombok
                    lombok
                
                
                    org.mybatis.spring.boot
                    mybatis-spring-boot-starter
                
                
                
                    redis.clients
                    jedis
                
                
                
                    com.github.pagehelper
                    pagehelper-spring-boot-starter
                
                
                    io.springfox
                    springfox-swagger2
                
                
                    io.springfox
                    springfox-swagger-ui
                
                
                    com.github.xiaoymin
                    swagger-bootstrap-ui
                
                
                    com.alibaba
                    fastjson
                
                
                    org.apache.commons
                    commons-lang3
                
                
                    org.apache.commons
                    commons-text
                    1.8
                
                
                    commons-beanutils
                    commons-beanutils
                    1.9.3
                
                
                    org.apache.httpcomponents
                    httpclient
                
                
                    commons-collections
                    commons-collections
                    3.2.1
                
                
                
                    commons-codec
                    commons-codec
                
                
                
                    cn.hutool
                    hutool-all
                
                
                
                    com.aliyun
                    aliyun-java-sdk-core
                
                
                
                    org.bouncycastle
                    bcprov-jdk15on
                
                
                
                    dom4j
                    dom4j
                
                
                    com.alibaba
                    easyexcel
                
            
            
                
                    
                        org.springframework.boot
                        spring-boot-maven-plugin
                        
                            
                            exec
                        
                        
                            
                                
                                    repackage
                                
                            
                        
                    
                
            
        

        1.3 打包

        点击idea右侧maven隐藏按钮。打开maven项目目录如下:

        记录打包部署Springboot项目到Windows环境,第3张

        点击clean清理,点击package即打包。打包后可以再target目录下看到jar包。

        记录打包部署Springboot项目到Windows环境,第4张

        2. 部署

        2.1环境搭建

        安装部署好JDK,并配置好环境变量,运行java命令查看是否配置成功。如有数据库mysql,Redis等需要先部署好,不赘述。

        记录打包部署Springboot项目到Windows环境,第5张

        2.2运行

        把jar拷贝到服务器中,以管理员权限打开命令提示符窗口。cd到jar包目录,运行如下命令:

        java -jar xxx.jar

        记录打包部署Springboot项目到Windows环境,第6张

        可以看到运行成功的窗口。

        3. 后台服务

        以上是最简单的方式部署了一个Springboot多模块项目,但是此种部署方式的缺点是保持窗口开着,关闭即停止。

        关闭cmd窗口前:

        记录打包部署Springboot项目到Windows环境,第7张

        关闭后,用netstat -ano |findstr 8087查不到了,说明关闭了服务。

        记录打包部署Springboot项目到Windows环境,第8张

        改进方式,用后台执行命令:

        创建启动脚本文件start.bat,启动脚本如下:

        @echo off
        start javaw -jar xxx.jar
        exit

        记录打包部署Springboot项目到Windows环境,第9张

        点击start.bat,允许网络访问弹窗后,即可查到端口了。并通过访问接口确认服务已经成功启动。

        记录打包部署Springboot项目到Windows环境,第10张