SpringBoot迭代發佈JAR瘦身配置(續:將lib文件夾壓縮打包)

上次寫了篇 《SpringBoot迭代發佈JAR瘦身配置》,但有一個問題,全部的第三方JAR位於lib目錄中,不利於傳輸到服務器,所以應該考慮將此目錄壓縮打包,再傳輸到服務器,服務器解壓便可使用。html

通過一番google,找到相似的plugin(maven-assembly-plugin),看官網的介紹:spring

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。apache

接下來我就根據本身的需求定製我想要的包,我想把 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目錄下看到咱們的壓縮文件:app

組合上篇 《SpringBoot迭代發佈JAR瘦身配置的配置,就能夠實現把spring boot 項目打包成thin jar 以及把第三方jar打成壓縮文件。固然,我這裏用maven-assembly-plugin,根本就是大材小用,還有點違背此plugin的初衷,我只是取巧了而已。另外,若是用jenkins發佈的話,用命令將lib目錄壓縮打包也是能夠的,有時候解決問題的辦法不少不少,任君選擇!maven

相關文章
相關標籤/搜索