部署微服务时如果不知道之前的人用的哪个配置怎么办?

94 阅读2分钟

问题描述

后端程序员除了开发,还需要部署项目。如果我们不知道前一个人部署Jar包使用了什么配置,很可能项目升级优化导致当前的代码配置无法在老旧的系统环境上直接打包部署。我们需要知道原来的打包配置bootstrap.yml写的是什么

常见问题:

新Jar包发布上去启动后无法连接数据库

服务无法正常启动,因为Nacos版本升级了太高

解决方案

我们可以将线上正在运行的Jar包下载到本地,然后将程序包解压缩,就可以看到里面的配置文件了。

image.png

解压后的目录结构就是上面图片里展示的目录。

- META-INF/
  - MANIFEST.MF
  - maven/
    - <groupId>/
      - <artifactId>/
        - pom.properties
        - pom.xml
- BOOT-INF/
  - classes/
    - <application files and directories>
  - lib/
    - <dependency JAR files>
  - spring-boot-loader/
    - <Spring Boot loader files>
- org/
  - springframework/
    - boot/
      - loader/
        - <Spring Boot loader classes>
- <other files and directories>

然后进入到\BOOT-INF\classes目录下就可以看到熟悉的配置文件了。

image.png

bootstrap.yml 就是我们要找的原始配置文件了

进入lib目录就可以查看依赖的包版本号,非常的方便。

image.png

详细介绍Jar目录结构

  • META-INF/: 这个目录包含了 JAR 文件的元信息。

    • MANIFEST.MF: 这是 JAR 文件的清单文件,其中包含了关于 JAR 文件的元数据和配置信息。
    • maven/: 如果您使用 Maven 构建项目,该目录包含了与 Maven 构建相关的信息。
      • /: 这个目录是您项目的 Maven Group ID。
      • /: 这个目录是您项目的 Maven Artifact ID。
        • pom.properties: 这个文件包含了与项目构建相关的属性。
        • pom.xml: 这个文件是 Maven 项目的 POM 文件。
  • BOOT-INF/: 这个目录包含了 Spring Boot 应用程序的运行时内容。

    • classes/: 这个目录包含了应用程序的编译后的类文件和资源文件。
    • lib/: 这个目录包含了应用程序的依赖项(JAR 文件)。
    • spring-boot-loader/: 这个目录包含了 Spring Boot 加载器相关的文件。
      • : 这些文件是 Spring Boot 加载器使用的文件,用于启动和加载应用程序。
  • org/: 这个目录包含了应用程序的依赖库和类文件。

    • springframework/: 这个目录包含了 Spring Framework 相关的类文件。
      • boot/: 这个目录包含了 Spring Boot 相关的类文件。
        • loader/: 这个目录包含了 Spring Boot 加载器相关的类文件。
  • <other files and directories>: 这些是其他应用程序可能包含的文件和目录,例如静态资源文件、配置文件、日志文件等。

image.png