Spring boot 2.5.0生成的jar和-plain.jar之间的区别

作者:编程家 分类: spring 时间:2025-09-24

Spring Boot是一个开源的Java框架,用于快速搭建基于Spring的应用程序。它提供了一种简化的方式来配置和部署应用程序,并且具有强大的功能和灵活性。在使用Spring Boot时,我们通常会生成一个可执行的JAR文件来运行我们的应用程序。然而,有时候我们还会看到一个名为*-plain.jar的文件,那么它和普通的JAR文件有什么区别呢?

首先,让我们来了解一下普通的JAR文件。普通的JAR文件是将应用程序的所有依赖打包到一个文件中,包括应用程序的代码、依赖的库和资源文件。这种方式的好处是,我们可以将整个应用程序作为一个独立的单元进行部署和分发。只要有Java环境,我们就可以通过运行JAR文件来启动我们的应用程序。

然而,普通的JAR文件也存在一些问题。首先,它包含了所有的依赖,导致JAR文件的大小较大。这可能会增加应用程序的下载和部署时间。其次,由于所有的依赖都被打包到同一个文件中,当我们需要升级某个依赖时,必须重新生成整个JAR文件。这样就会增加维护的难度和复杂性。

为了解决这些问题,Spring Boot引入了*-plain.jar的概念。*-plain.jar是一个纯净的JAR文件,它只包含了应用程序的代码,而没有包含任何依赖的库。这样的好处是,*-plain.jar文件的大小较小,下载和部署时间也相对较短。另外,由于依赖的库没有被打包到*-plain.jar文件中,我们可以通过其他方式来管理和升级依赖。这样就方便了应用程序的维护和升级。

下面我们来看一个例子,来展示普通JAR文件和*-plain.jar文件的区别。假设我们有一个简单的Spring Boot应用程序,它依赖了Spring Web和Spring Data JPA。我们先使用普通的方式来生成JAR文件:

java

@SpringBootApplication

public class DemoApplication {

public static void main(String[] args) {

SpringApplication.run(DemoApplication.class, args);

}

}

然后我们使用Maven来生成JAR文件:

xml

org.springframework.boot

spring-boot-maven-plugin

在命令行中执行`mvn clean package`,然后在`target`目录下找到生成的JAR文件。这个JAR文件的大小大约为30MB左右,因为它包含了所有的依赖。

接下来,我们使用*-plain.jar的方式来生成JAR文件。我们只需要在`pom.xml`文件中添加一行配置即可:

xml

org.springframework.boot

spring-boot-maven-plugin

plain

然后再次执行`mvn clean package`命令,我们可以在`target`目录下找到生成的*-plain.jar文件。这个文件的大小大约为10KB左右,远远小于普通的JAR文件。

在本文中,我们探讨了Spring Boot生成的普通JAR文件和*-plain.jar文件之间的区别。普通的JAR文件包含了所有的依赖,适合作为一个独立的应用程序进行部署和分发。而*-plain.jar文件只包含了应用程序的代码,依赖的库需要通过其他方式来管理和升级。*-plain.jar文件的好处是,它的大小较小,下载和部署时间较短,方便应用程序的维护和升级。

希望本文对你理解Spring Boot生成的不同类型的JAR文件有所帮助。如果你对Spring Boot还有其他疑问,可以继续深入学习和探索。