Springboot项目开发完成后要做的工作就是部署了,这里记录下打包部署的过程。这个项目是一个SpringBoot多模块项目,包含了一个父工程,一个子模块和一个工具模块。其中子模块里有启动类,而工具模块没有。因此这三者的pom文件不一样。
用Idea加载开发好的springboot项目。目录结构截图如下:
修改配置文件,按生成环境prod配置相关的redis,mysql参数,不赘述。
具体pom整理如下,并附上具体pom。
a.父项目中的包类型
b.父项目要用模块包含子项目。
c.子项目(带启动类)的pom中的plugin修改如下。
spring-boot-maven-plugin
org.springframework.boot spring-boot-starter-parent2.3.0.RELEASE 4.0.0 cn.com.gangsi gangsi-dp-servicepom 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.ALL1.2.5 8.0.16 2.0.1.Final 1.60 1.6.1 3.17 org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-testtest org.springframework.boot spring-boot-starter-actuatororg.springframework.boot spring-boot-starter-data-redisorg.springframework.boot spring-boot-starter-validationorg.springframework.boot spring-boot-starter-websocketio.springfox springfox-swagger2io.springfox springfox-swagger-uicom.github.xiaoymin swagger-bootstrap-uiorg.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-jdbcorg.mybatis.spring.boot mybatis-spring-boot-starter${mybatis.version} org.springframework.boot spring-boot-configuration-processortrue org.springframework.boot spring-boot-starter-aoporg.springframework.boot spring-boot-starter-data-redis2.0.5.RELEASE org.apache.commons commons-pool2org.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-ooxml4.1.2 org.apache.poi poi-ooxml-schemas4.1.2 com.alibaba easyexcel2.0.0-beta6 org.springframework.boot spring-boot-maven-plugin
gangsi-dp-service cn.com.gangsi gs-1.0.0 4.0.0 cn.com.gangsi gs-dp-adminjar gs-1.0.0 cn.com.gangsi gs-dp-commongs-1.0.0 org.projectlombok lombokcom.alibaba druid-spring-boot-startermysql mysql-connector-javacn.hutool hutool-allcom.github.pagehelper pagehelper-spring-boot-starterjavax.validation validation-apicom.github.whvcse easy-captcha1.6.2 org.apache.poi poi3.17 org.apache.poi poi-ooxml3.17 org.apache.poi poi-ooxml-schemas3.17 com.alibaba easyexcel2.2.3 org.apache.thrift libthrift0.9.3 compile org.springframework spring-aspectsorg.springframework.boot spring-boot-maven-pluginsrc/main/java **/*.xml false src/main/resources **/*
gangsi-dp-service cn.com.gangsi gs-1.0.0 4.0.0 cn.com.gangsi gs-dp-commonjar gs-1.0.0 org.springframework.boot spring-boot-starter-data-redisorg.springframework.boot spring-boot-starter-amqporg.projectlombok lombokorg.mybatis.spring.boot mybatis-spring-boot-starterredis.clients jediscom.github.pagehelper pagehelper-spring-boot-starterio.springfox springfox-swagger2io.springfox springfox-swagger-uicom.github.xiaoymin swagger-bootstrap-uicom.alibaba fastjsonorg.apache.commons commons-lang3org.apache.commons commons-text1.8 commons-beanutils commons-beanutils1.9.3 org.apache.httpcomponents httpclientcommons-collections commons-collections3.2.1 commons-codec commons-codeccn.hutool hutool-allcom.aliyun aliyun-java-sdk-coreorg.bouncycastle bcprov-jdk15ondom4j dom4jcom.alibaba easyexcelorg.springframework.boot spring-boot-maven-pluginexec repackage
点击idea右侧maven隐藏按钮。打开maven项目目录如下:
点击clean清理,点击package即打包。打包后可以再target目录下看到jar包。
安装部署好JDK,并配置好环境变量,运行java命令查看是否配置成功。如有数据库mysql,Redis等需要先部署好,不赘述。
把jar拷贝到服务器中,以管理员权限打开命令提示符窗口。cd到jar包目录,运行如下命令:
java -jar xxx.jar
可以看到运行成功的窗口。
以上是最简单的方式部署了一个Springboot多模块项目,但是此种部署方式的缺点是保持窗口开着,关闭即停止。
关闭cmd窗口前:
关闭后,用netstat -ano |findstr 8087查不到了,说明关闭了服务。
改进方式,用后台执行命令:
创建启动脚本文件start.bat,启动脚本如下:
@echo off start javaw -jar xxx.jar exit
点击start.bat,允许网络访问弹窗后,即可查到端口了。并通过访问接口确认服务已经成功启动。