Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?

Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?

Spring Boot 打成的 jar

  • Spring Boot的项目终止以jar包的形式进行打包,这种jar包可以通过可以通过命令(java -jar xxx.jar)来运行的,这种jar包不能被其他项目所依赖,即使被依赖了也不能直接使用其中的类。普通的jar包,解压后直接就是包名,包里就是我们的代码,而 Spring Boot 打包成的可执行 jar 解压后,在 \BOOT-INF\classes 目录下才是我们的代码,因此无法被直接引用。如果非要引用,可以在 pom.xml 文件中增加配置,将 Spring Boot 项目打包成两个 jar ,一个可执行,一个可引用。

    下面是不同jar包的目录结构
  • Spring boot 的jar包

Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?

  • 普通的jar包

Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?

Spring Boot 打可依赖的jar

只需要在pom文件中配置如下信息

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<!--可以把依赖的包都打包到生成的Jar包中 -->
<goal>repackage</goal>
</goals>
<!--可以生成不含依赖包的不可执行Jar包 -->
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
  • 一次打包生成两个jar包,其中XXX.jar可作为其它工程的依赖,XXX-exec.jar可被执行

Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?

  • 我们看一下目录结构 是否是我们所希望的。

可执行的jar

Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?

可依赖的jar包

Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?

备注

结束

  • 相信小伙伴对Spring Boot jar 和普通的jar有一定的了解,希望本文可以帮助到你
上一篇:用Word 写csdn blog


下一篇:在使用Vant中Uploader过程中遇到的坑:图片状态更改等