SpringBoot迭代发布JAR瘦身配置(续:将lib文件夹压缩打包)

江枫思渺然 提交于 2019-12-02 22:12:19

上次写了篇 《SpringBoot迭代发布JAR瘦身配置》,但有一个问题,所有的第三方JAR位于lib目录中,不利于传输到服务器,因此应该考虑将此目录压缩打包,再传输到服务器,服务器解压即可使用。

经过一番google,找到类似的plugin(maven-assembly-plugin),看官网的介绍:

The Assembly Plugin for Maven is primarily intended to allow users to aggregate the project output along with its dependencies, modules, site documentation, and other files into a single distributable archive.

大致意思就是:Assembly Plugin 主要是为了允许用户将项目输出及其依赖项、模块、文档和其他文件聚合到一个可发布的文件中。通俗一点就是可以定制化自己想要打包的文件,支持打包的格式有:zip、tar、tar.gz (or tgz)、tar.bz2 (or tbz2)、tar.snappy、tar.xz (or txz)、jar、dir、war。

接下来我就根据自己的需求定制我想要的包,我想把 target/lib 目录压缩打包,

  • 在pom的配置如下:
<!-- lib 文件夹压缩打包 -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <finalName>${project.artifactId}-libs</finalName>
        <encoding>UTF-8</encoding>
        <descriptors>
            <descriptor>assembly.xml</descriptor>
        </descriptors>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>
  • 在项目根目录下新建文件assembly.xml,内容如下:
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/3.1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/3.1.0 http://maven.apache.org/xsd/assembly-3.1.0.xsd">

    <formats>
        <format>tar.gz</format>
    </formats>
    <id>${project.version}</id>
    <includeBaseDirectory>false</includeBaseDirectory>
    <fileSets>
        <fileSet>
            <directory>target/lib</directory>
            <outputDirectory>lib</outputDirectory>
        </fileSet>
    </fileSets>
</assembly>

到此,配置就写完了,执行打包命令:mvn clean package -Dmaven.test.skip=true,就可以在target目录下看到我们的压缩文件:

组合上篇 《SpringBoot迭代发布JAR瘦身配置的配置,就可以实现把spring boot 项目打包成thin jar 以及把第三方jar打成压缩文件。当然,我这里用maven-assembly-plugin,根本就是大材小用,还有点违背此plugin的初衷,我只是取巧了而已。另外,如果用jenkins发布的话,用命令将lib目录压缩打包也是可以的,有时候解决问题的办法很多很多,任君选择!

    易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
    该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!