上次寫了篇 《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 目錄壓縮打包,服務器
<!-- 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 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