【SpringCloud】18. Spring Cloud多服务打包部署

2,904 阅读1分钟

前置准备

  1. 服务器上必须安装JDK或者JRE。
  2. 服务器需要安装Nacos,Sentinel,Redis,MySQL等环境。(按照项目技术选型而定)

添加配置

  1. 在父(foot)工程的pom.xml中添加配置

    <packaging>pom</packaging>
    
  2. 在每一个有入口类的子服务的pom.xml中添加配置

    <packaging>jar</packaging>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
    

    注意:common服务的pom.xml中无需添加该配置。

Maven打包

本文采用的是Maven自动打包,无序关系各个服务之间的依赖关系。

在IDEA安装的Maven插件中,打开每一个子服务的Maven模块下都会显示:

  • Lifecycle:常用到的命令列表。
  • Plugins:插件列表。
  • Dependencies:服务部署所依赖的包列表。

20210828191423.png

  1. 打开root工程的Maven模块 ——> Lifecycle
  2. 点击clean命令,清除当前项目的target目录。
  3. 点击package命令,进行自动打包,最后每一个服务的jar包在当前项目的每一个服务的target目录中。

注意:也可以使用install命令代替package命令,install命令也可以对项目进行自动打包。和package命令的区别在于,install命令比package命令多了一个步骤,install命令在将项目打包完成后,会将jar / war部署到Maven本地仓库。

部署jar包

部署各个服务的jar包:

java -jar xxx.jar

如果服务的配置文件(例如:application.yml)中包含中文字符,那么会部署失败,有两种解决方案:

  • 将配置文件中的所有中文字符删除。

  • 在部署命令中增加编码参数。

    java -Dfile.encoding=utf-8 -jar xxx.jar
    

注意:common服务的jar包不需要单独部署。