高级开发

一种不错的Jar打包方式

宋兴柱 · 3月17日 · 2020年 · · 559次已读

一、说明

分享一种springboot项目的打包jar的方式,特点是打成的jar内部,会包含第三方依赖的jar,而不是第三方jar的解压形式。从而不会破坏第三方jar的类加载环境。这种方式不是我最理想的,我最喜欢的方式可以查找之前的博客,不过可以分享出来供大家学习。

二、解决方案

在要打包输出的子模块中的pom.xml中配置下列代码。

<build>
   <plugins>
      <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
   </plugins>
</build>

三、执行

mvn install -DskipTests 或 mvn install -Dmaven.test.skip=true

四、结果

在子模块的/target目录下即可生成一个大的jar,jar中自动包含了项目。

2 条回应
  1. super_admi2020-4-24 · 11:13

    很多插件,包括eclipse的插件,其实都是这么搞的。但这样打包,有其优点,自然也有其缺点。优点自然是不会有什么外在依赖,但缺点也很明显:包的体积会比较大;如果要更新引用到的jar,需要重新打包;不符合重用原则。
    对比来说,这有点类似C/C++里面使用静态库。

    • 宋兴柱2020-5-8 · 16:36

      我一般也不用这种,我使用这种方式,可以把配置文件暴露出来,参考我的文章 《通过Maven发部项目的最实用配置(http://www.dearcloud.cn/archives/360)》