SpringBoot打成jar包的结构
springboot通常会打成jar包,然后使用java -jar来进行执行,那么这个jar包里的结构是什么样的呢
其中
-
BOOT-INF 中包含的classes是我们程序中所有的代码编译后的class文件,lib是程序所引用的外部依赖
-
META-INF 这个应该就很熟悉了,java打包生成的清单文件,下面就是一个MANIFEST.MF文件的示例
Manifest-Version: 1.0 Implementation-Title: demo Implementation-Version: 0.0.1-SNAPSHOT Archiver-Version: Plexus Archiver Built-By: zhanghe Implementation-Vendor-Id: com.zhanghe.study Spring-Boot-Version: 1.5.9.RELEASE Implementation-Vendor: Pivotal Software, Inc. Main-Class: org.springframework.boot.loader.JarLauncher Start-Class: com.zhanghe.study.springboot.DemoApplication Spring-Boot-Classes: BOOT-INF/classes/ Spring-Boot-Lib: BOOT-INF/lib/ Created-By: Apache Maven 3.6.3 Build-Jdk: 1.8.0_261 Implementation-URL: http://projects.spring.io/spring-boot/springboot/
看一下Main-Class发现并不是我们在项目中所写的main方法对应的类,而是springboot提供的JarLauncher,而Start-Class才是在项目中所写的main方法对应的类
-
springboot官方的代码,MANIFEST.MF中的Main-Class就在该包下,JarLauncher是打成jar包后的主类,WarLauncher是打成war包后的主类
https://zhhll.icu/2022/框架/springboot/基础/19.springboot打成jar包的结构/