有时候定位一些问题可能需要从jar包里分析,比如是否正确生成了springboot的启动包,二/三方库依赖版本号是否符合预期等。
1.解压jar包:zip xxxx.jar
- 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>
解压后,像是上面这种文件结构,才是正确的springboot启动包,如果不是,可能是没有配置springboot的maven打包插件;
让我们逐个解释这些目录和文件的作用:
-
META-INF/
: 这个目录包含了 JAR 文件的元信息。MANIFEST.MF
: 这是 JAR 文件的清单文件,其中包含了关于 JAR 文件的元数据和配置信息。maven/
: 如果您使用 Maven 构建项目,该目录包含了与 Maven 构建相关的信息。<groupId>/
: 这个目录是您项目的 Maven Group ID。<artifactId>/
: 这个目录是您项目的 Maven Artifact ID。pom.properties
: 这个文件包含了与项目构建相关的属性。pom.xml
: 这个文件是 Maven 项目的 POM 文件。
-
BOOT-INF/
: 这个目录包含了 Spring Boot 应用程序的运行时内容。classes/
: 这个目录包含了应用程序的编译后的类文件和资源文件。lib/
: 这个目录包含了应用程序的依赖项(JAR 文件)。spring-boot-loader/
: 这个目录包含了 Spring Boot 加载器相关的文件。<Spring Boot loader files>
: 这些文件是 Spring Boot 加载器使用的文件,用于启动和加载应用程序。
-
org/
: 这个目录包含了应用程序的依赖库和类文件。springframework/
: 这个目录包含了 Spring Framework 相关的类文件。boot/
: 这个目录包含了 Spring Boot 相关的类文件。loader/
: 这个目录包含了 Spring Boot 加载器相关的类文件。
-
<other files and directories>
: 这些是其他应用程序可能包含的文件和目录,例如静态资源文件、配置文件、日志文件等。