可执行jar和普通jar
Spring Boot默认打包就是可执行jar包,普通项目打包是普通jar
-
可执行jar包是可以使用
java -jar app.jar命令执行的,普通jar包不能被执行 -
可执行jar包是不能被依赖的,普通jar包是可以作为第三方被依赖的
-
这两种的jar包目录结构不一样, 可执行jar多了一些SpringBoot的文件
可执行jar
普通jar
-
MANIFEST.MF文件的信息不一样,可执行jar多了一些启动类的信息
可执行jarManifest-Version: 1.0 Implementation-Title: spring-boot-security Implementation-Version: 0.0.1-SNAPSHOT Start-Class: com.aloneness.spring.boot.security.SpringBootSecurityApplication Spring-Boot-Classes: BOOT-INF/classes/ Spring-Boot-Lib: BOOT-INF/lib/ Build-Jdk-Spec: 1.8 Spring-Boot-Version: 2.2.6.RELEASE Created-By: Maven Archiver 3.4.0 Main-Class: org.springframework.boot.loader.JarLauncher普通jar
Manifest-Version: 1.0 Implementation-Title: spring-boot-security Implementation-Version: 0.0.1-SNAPSHOT Build-Jdk-Spec: 1.8 Created-By: Maven Archiver 3.4.0
spring-boot-maven-plugin
Spring Boot打包比普通的打包多了一个插件
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
这个插件会在打包的时候增加一个repackage的步骤,将普通的jar包打包成可执行jar包,原来的jar包会重命名为*.original