1、使用場景java
若是項目是微服務架構,可能用到這個插件的機率比較高,平時普通的項目不須要這樣的實現方式。apache
若是項目內的一部分通用功能,不須要挨個引用,則須要將通用功能部分達成jar包。架構
2、Maven-assembly-plugin做用app
一、做用:要想將寫的程序和它自己所依賴的jar包一塊兒build到一個包裏,是maven中針對打包任務而提供的標準插件。maven
二、其餘做用:微服務
1)提供一個把工程依賴元素、模塊、網站文檔等其餘文件存放到單個歸檔文件裏。網站
2)打包成指定格式分發包,支持各類主流的格式如zip、tar.gz、jar和war等,具體打包哪些文件是高度可控的。ui
3)可以自定義包含/排除指定的目錄或文件。spa
3、整體來講,插件maven-assembly-plugin的使用分爲3個步驟:插件
首先貼下我項目路徑的截圖:
1:pom.xml文件裏配置maven-assembly-plugin,指定描述文件
2:描述文件配置具體參數
3: 命令行下執行 mvn assembly:assembly -Dmaven.test.skip=true
對應步驟1 ------> 項目中pom.xml的配置以下,在build中加入:
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <appendAssemblyId>false</appendAssemblyId> <descriptors> <!-- 描述文件路徑--> <descriptor>src/main/assembly/assembly.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </pluginManagement>
描述文件assembly.xml的內容:
<?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>distribution</id> <formats> <format>dir</format> </formats> <!-- <fileSets> <fileSet> <directory>${project.basedir}\src\main\resources</directory> <outputDirectory>\</outputDirectory> </fileSet> </fileSets>--> <dependencySets> <dependencySet> <useProjectArtifact>true</useProjectArtifact> <outputDirectory>lib</outputDirectory> <!-- 將scope爲runtime的依賴包打包到lib目錄下。 --> <scope>runtime</scope> <excludes> <exclude>${org.apache.jmeter}:${ApacheJMeter_java}</exclude> </excludes> </dependencySet> </dependencySets></assembly>
3. 在命令行下,到pom.xml所在目錄下,執行 mvn assembly:assembly -Dmaven.test.skip=true
在項目的target下能夠看到打包以後獲得的jar和對應的目錄.