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

原文地址:https://www.cnblogs.com/onmyway20xx/p/9008340.html

时间: 2024-10-21 07:02:25

pom文件中maven-assembly-plugin插件学习的相关文章

关于使用命令添加jar进自己的pom文件中-maven项目添加jar包

现在几乎开发项目都是使用的maven项目,但是有的时候可以使用比较偏门或者新的jar可能在网上搜不到在pom文件里的配置应该如何写,因此写下这篇博客. 比如我现在想加入的AAA.jar这个包 打开cmd,在里面输入命令 mvn install:install-file -Dfile=想添加jar包的位置(比如E:/AAA.jar) -DgroupId=这个包放在你本地库的位置(例如com.公司名.你这个包的相关起这个名 com.xxxx.BBB) -DartifactId=BBB -Dversi

question --&gt; maven assembly plugin 修改文件默认权限

使用maven assembly plugin插件添加执行脚本时,发现默认权限为644,还需要手动添加执行权限.这很麻烦,于是查看文档 官方文档 http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html#class_fileSet fileMode String Similar to a UNIX permission, sets the file mode of the files included. THIS IS

Maven学习(3)-依赖管理-POM文件中依赖的范围定义

来源: https://www.cnblogs.com/best/p/9676515.html#_lab2_1_2 https://www.cnblogs.com/kabi/p/8509049.html POM文件中的依赖可以通过<scope>标签定义依赖范围: <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.1

Maven的Pom文件中的隐式依赖导致Jar包冲突的问题

在一次的maven项目中遇到这样一个bug: 编译器没有报什么错,但无法编译,或者能编译,项目启动不了.后来我才发现是以下的问题: 项目中的pom文件中,依赖了webx3.core,而webx3.core又隐式依赖了fasttext相关的jar包,同时我在pom中也引人了fasttext.all, fasttext.all也隐式依赖了fasttext相关的jar包,两类jar包版本还不一样,这样就导致了jar包冲突的问题,牵扯到的pom文件依赖如下: <dependency><group

maven assembly plugin使用

使用场景 在使用maven来管理项目时,项目除了web项目,还有可能为控制台程序,一般用于开发一些后台服务的程序.最近在工作中也遇到了这种场景,使用quartz开发一个任务调度程序.程序中依赖很多jar包,项目的启动时只需要初始化spring容器即可. 使用方法 使用一个简单的基于spring框架的demo来做程序示例,来介绍maven assembly插件的使用方法. 项目中的代码目录如下: 在以上代码目录中,assembly目录下为打包的描述文件,下面会详细介绍该文件,bin目录下为启动脚本

idea中的pom文件中的jar包下载不了,手动下载jar包的方法

问题描述: 在pom文件中添加依赖的时候,程序怎么着都是下载不了,而且实验了各种方式: https://www.cnblogs.com/a8457013/p/7811519.html(可以参考,但是本人使用无效) 求取无果,只能自己下载到本地仓库在使用吧: 参考下面博客,可以将jar包下载然后安装到本地,非常感谢大家的分享:特此记录一笔. https://www.cnblogs.com/czy16/p/7569628.html http://www.cnblogs.com/tangshengwe

阿里规范 - 六、工程结构 - (二)二方库依赖 - 9. 【推荐】所有 pom 文件中的依赖声明放在&lt;dependencies&gt;语句块中,所有版本仲裁放在 &lt;dependencyManagement&gt;语句块中。

9. [推荐]所有 pom 文件中的依赖声明放在<dependencies>语句块中,所有版本仲裁放在 <dependencyManagement>语句块中. 说明:<dependencyManagement>里只是声明版本,并不实现引入,因此子项目需要显式的声明依 赖,version 和 scope 都读取自父 pom.而<dependencies>所有声明在主 pom 的<dependencies>里 的依赖都会自动引入,并默认被所有的子项目

Maven学习(3)-依赖管理-POM文件中依赖的版本管理

pom.xml中依赖的定义样例: <dependencies> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency></dependencies>

maven的pom文件中指定编译的版本

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <enc

Idea中maven项目pom文件中已引入testng但项目文件中无法引入@Test

问题: 1.Idea中maven项目的pom.xml文件中引入依赖testng 2.此时可以看到已经出现testng的jar包,ERPLogin.java中引用@Test发现无法引用,然后直接import org.testng.annotations.Test也无法显示 3.但是在test目录下能引用到testng 原因: 在pom.xml文件引用testng的时候,有个标签<scope>test</scope>限制了只能在test目录下使用 1 <dependency>