1、maven-assembly-plugin插件介紹java
Assembly 插件的主要做用是,容許用戶將項目輸出與它的依賴項、模塊、站點文檔、和其餘文件一塊兒組裝成一個可分發的歸檔文件,簡單的說,就是自定義打包的工具,有本身的配置文件(Assembly描述符文件)。微服務使用這個插件的機率比較高,平時普通的項目不須要這樣的實現方式。spring
使用此插件有兩個步驟:apache
第1步驟:pom.xml文件裏配置maven-assembly-plugin,指定描述文件springboot
第2步驟:引入Assembly描述符文件。配置Assembly描述符文件信息,以下:app
?xml version="1.0" encoding="utf-8"?> <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> <!-- id 標識符,添加到生成文件名稱的後綴符--> <id>${project.version}</id> <!-- 指定打包格式。maven-assembly-plugin插件支持的打包格式有zip、tar、tar.gz (or tgz)、tar.bz2 (or tbz2)、jar、dir、war,能夠同時指定多個打包格式 --> <formats> <format>jar</format> </formats> <!-- 指定打的包是否包含打包層目錄(好比finalName是terminal-dispatch,當值爲true,全部文件被放在包內的terminal-dispatch目錄下,不然直接放在包的根目錄下)--> <includeBaseDirectory>true</includeBaseDirectory> <!-- 指定將工程依賴的包打到包裏的指定目錄下 --> <dependencySets> <dependencySet> <useProjectArtifact>true</useProjectArtifact> <!-- 指定打包時是否包含工程自身生成的jar包 --> <outputDirectory>lib</outputDirectory> <!-- 指定將這些依賴包打到包裏lib目錄下 --> <scope>runtime</scope> <!-- 用於管理依賴的部署,runtime表示只在運行時使用 --> </dependencySet> </dependencySets> <!-- 指定要包含的文件集,能夠定義多個fileSet --> <fileSets> <fileSet> <directory>src/main/java</directory> <!-- 指定要打成jar包的目錄(下的文件及文件夾) --> <outputDirectory>bin</outputDirectory> <!-- 指定要將當前目錄(<directory>標籤中的目錄放在歸檔文件(要打的jar包)bin目錄下) --> <includes> <include>dao</include> <!-- 精確控制要包含的文件,<exclude>用於精確控制要排除的文件 --> <include>server</include> </includes> </fileSet> <fileSet> <directory>src/main/resources</directory> <outputDirectory>conf</outputDirectory> <includes> <include>config.properties</include> <include>logback.xml</include> </includes> </fileSet> </fileSets> </assembly>
2、實戰maven
項目路徑:微服務
添加依賴工具
父級:學習
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>${maven-assembly-plugin.version}</version> </plugin>
子級:spa
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <!-- 打包的文件名稱是否包含Assembly描述符文件的id --> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>src/main/assembly/depolyment.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>dist</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin>
Assembly描述符文件路徑
Assembly描述符文件配置
<?xml version="1.0" encoding="UTF-8"?> <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd"> <id>dist</id> <formats> <format>zip</format> </formats> <includeBaseDirectory>true</includeBaseDirectory> <fileSets> <fileSet> <directory>src/main/java</directory> <outputDirectory>bin/</outputDirectory> </fileSet> <fileSet> <directory>src/main/resources</directory> <outputDirectory>bin/</outputDirectory> </fileSet> </fileSets> <dependencySets> <dependencySet> <outputDirectory>lib/</outputDirectory> <scope>runtime</scope> <excludes> <exclude>${groupId}:${artifactId}</exclude> </excludes> </dependencySet> </dependencySets> </assembly>
執行maven打包,target生成zip文件,以下圖:
解壓縮目錄:
以上打包方法的主要做用是生成微服務admin運行所須要的jar文件,下一篇繼續學習整合springboot微服務模塊maven打包整合終結篇。