pom文件中maven-assembly-plugin插件學習

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和對應的目錄.

相關文章
相關標籤/搜索