zoukankan      html  css  js  c++  java
  • pom文件中maven-assembly-plugin插件学习

    一、使用场景

    如果项目是微服务架构,可能用到这个插件的概率比较高,平时普通的项目不需要这样的实现方式。

    如果项目内的一部分通用功能,不需要挨个引用,则需要将通用功能部分达成jar包。

    二、Maven-assembly-plugin作用

    1、作用:要想将写的程序和它本身所依赖的jar包一起build到一个包里,是maven中针对打包任务而提供的标准插件。

     2、其他作用:

    1)提供一个把工程依赖元素、模块、网站文档等其他文件存放到单个归档文件里。

    2)打包成指定格式分发包,支持各种主流的格式如zip、tar.gz、jar和war等,具体打包哪些文件是高度可控的。

    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}srcmain
    esources</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和对应的目录.

  • 相关阅读:
    设计模式-1-概要(c#版)
    UML图示说明
    阿里云SLB双机IIS多站点负载均衡部署笔记
    阿里云分布式关系数据库DRDS笔记
    一些小经验
    NOSQL场景梳理
    内核linux-3.4.2支持dm9000
    构建根文件系统
    u-boot-1.1.6移植之dm9000
    移植u-boot-1.1.6(原创)
  • 原文地址:https://www.cnblogs.com/onmyway20xx/p/9008340.html
Copyright © 2011-2022 走看看