首页 > 其他分享 >Maven打包插件之——maven-jar-plugin、maven-assembly-plugin、maven-shade-plugin

Maven打包插件之——maven-jar-plugin、maven-assembly-plugin、maven-shade-plugin

时间:2023-12-25 22:14:35浏览次数:33  
标签:插件 plugin jar maven shade plugins

转载自:https://blog.csdn.net/calm_encode/article/details/103931537

1. 打包插件的介绍

      打包插件是把class文件,配置文件打包成一个jar(war或者其他格式)的包。而且可执行jar包中包含或者不包含相应的依赖包包,当不包含相应的依赖包时,我们需要建立lib目录,且jar和lib目录在同级别目录。

2. 常见的打包插件

      2.1 maven-jar-plugin

            可执行jar包与依赖包是分开的,需要建立lib目录来存放所需的依赖包,且jar包与lib目录在同级别目录中,相应的pom配置如下:

  1.   <plugin>
  2.   <groupId>org.apache.maven.plugins</groupId>
  3.   <artifactId>maven-jar-plugin</artifactId>
  4.   <version>2.6</version>
  5.   <configuration>
  6.   <archive>
  7.   <manifest>
  8.   <addClasspath>true</addClasspath>
  9.   <classpathPrefix>lib/</classpathPrefix>
  10.   <mainClass>com.xxx.xxxService</mainClass>
  11.   </manifest>
  12.   </archive>
  13.   </configuration>
  14.   </plugin>
  15.   <plugin>
  16.   <groupId>org.apache.maven.plugins</groupId>
  17.   <artifactId>maven-dependency-plugin</artifactId>
  18.   <version>2.10</version>
  19.   <executions>
  20.   <execution>
  21.   <id>copy-dependencies</id>
  22.   <phase>package</phase>
  23.   <goals>
  24.   <goal>copy-dependencies</goal>
  25.   </goals>
  26.   <configuration>
  27.   <outputDirectory>${project.build.directory}/lib</outputDirectory>
  28.   </configuration>
  29.   </execution>
  30.   </executions>
  31.   </plugin>

      2.2 maven-assembly-plugin

            该插件会将所有的依赖包放入可执行jar包,但是该插件会缺失spring的xds文件,导致jar包无法运行,而且当同级别目录下还有其他可执行文件依赖可能会产生冲突,相应的pom配置如下:

  1.   <plugin>
  2.   <artifactId>maven-assembly-plugin</artifactId>
  3.   <configuration>
  4.   <descriptorRefs>
  5.   <descriptorRef>jar-with-dependencies</descriptorRef>
  6.   </descriptorRefs>
  7.   <archive>
  8.   <manifest>
  9.   <mainClass>com.xxx.xxxService</mainClass>
  10.   </manifest>
  11.   </archive>
  12.   </configuration>
  13.   <executions>
  14.   <execution>
  15.   <id>make-assembly</id>
  16.   <phase>package</phase>
  17.   <goals>
  18.   <goal>single</goal>
  19.   </goals>
  20.   </execution>
  21.   </executions>
  22.   </plugin>

      2.3 maven-shade-plugin

            该插件将所有的依赖包放入可执行的jar包中,当同级别目录中有其他的可执行jar包时,依赖可能会产生冲突,且运行jar包时,有时候会出现类似SF,DSA,RSA文件冲突的提示,选哟派相互META-INF目录下的文件,相应pom位置如下:

  1.       <plugin>
  2.   <groupId>org.apache.maven.plugins</groupId>
  3.   <artifactId>maven-shade-plugin</artifactId>
  4.   <version>2.4.3</version>
  5.   <executions>
  6.   <execution>
  7.   <phase>package</phase>
  8.   <goals>
  9.   <goal>shade</goal>
  10.   </goals>
  11.   <configuration>
  12.   <filters>
  13.   <filter>
  14.   <artifact>*:*</artifact>
  15.   <excludes>
  16.   <exclude>META-INF/*.SF</exclude>
  17.   <exclude>META-INF/*.DSA</exclude>
  18.   <exclude>META-INF/*.RSA</exclude>
  19.   </excludes>
  20.   </filter>
  21.   </filters>
  22.   <transformers>
  23.   <transformer
  24.   implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  25.   <resource>META-INF/spring.handlers</resource>
  26.   </transformer>
  27.   <transformer
  28.   implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  29.   <resource>META-INF/spring.schemas</resource>
  30.   </transformer>
  31.   <transformer
  32.   implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
  33.   <resource>META-INF/spring.tooling</resource>
  34.   </transformer>
  35.   <transformer
  36.   implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
  37.   <mainClass>com.xxx.xxxInvoke</mainClass>
  38.   </transformer>
  39.   </transformers>
  40.   <minimizeJar>true</minimizeJar>
  41.   <shadedArtifactAttached>true</shadedArtifactAttached>
  42.   </configuration>
  43.   </execution>
  44.   </executions>
  45.   </plugin>

 

标签:插件,plugin,jar,maven,shade,plugins
From: https://www.cnblogs.com/wanghengbin/p/17927073.html

相关文章

  • Maven uber-jar(带依赖的打包插件)maven-shade-plugin
    转载自:https://blog.csdn.net/Ares5kong/article/details/128832989文章目录最基础的maven-shade-plugin使用生成可执行的Jar包和常用的资源转换类包名重命名打包时排除依赖与其他常用打包插件比较 本文是对maven-shade-plugin常用配置的介绍,更详细的学习......
  • Maven uber-jar(带依赖的打包插件) spring-boot-maven-plugin
    转载自:https://blog.csdn.net/Ares5kong/article/details/128791102文章目录最基础的spring-boot-maven-plugin使用指定入口类安装部署原始Jar包到仓库保持原始Jar包名称,为spring-boot-maven-plugin生成的Jar包添加名称后缀打包时排除依赖建议将生成的Jar解压后......
  • Maven maven-jar-plugin
     Mavenmaven-jar-plugin转载自:https://www.jianshu.com/p/d44f713b1ec9作用:打包(jar)插件,设定MAINFEST.MF文件的参数,比如指定运行的Mainclass、将依赖的jar包加入classpath中等等,首先我们明确一点的是maven插件功能:compile、package、deploy...都是在${project.build.di......
  • Maven 打包插件 maven-jar-plugin
    转载自:https://blog.csdn.net/Ares5kong/article/details/128777500文章目录指定版本生成可执行Jar准备依赖,并指定依赖位置自动下载依赖的Jar文件打包时排除文件与其他常用打包插件比较 本文是对maven-jar-plugin常用配置的介绍,更详细的学习请参照Apac......
  • WPF Halcon机器视觉和运动控制软件通用框架,插件式开发,开箱即用 仅供学习!
    点我下载,仅供个人学习使用参考easyvision开发,集成几十个软件算子此版本以添加ui设计器。具体功能如上所示,可以自定义变量,写c#脚本,自定义流程,包含了halcon脚本和封装的算子,可自定义ui,通过插件形式开发很方便拓展自己的功能。......
  • 一些好用的maven插件介绍
     一些好用的maven插件介绍转载自:https://juejin.cn/post/7231527422200692794Maven插件是扩展Maven功能的方式之一,它可以帮助我们更轻松地管理依赖性、构建应用程序、运行测试和部署应用程序等。maven插件实在是太多了,我这里也介绍不完,仅仅以我使用过的也比较实用的给大家......
  • 这款IDEA插件用着确实爽
    IDEA是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作,一般需要打开额外的调试工具。今天给大家介绍一款IDEA插件:Apipost-Helper-2.0。代码写完直接编辑器内调试、还支持生成接口文档、......
  • 免费IDEA插件推荐-Apipost-Helper
    IDEA插件市场中的API调试插件不是收费(FastRequest)就是不好用(apidoc、apidocx等等)今天给大家介绍一款国产的API调试插件:Apipost-Helper,完全免费且好看好用!这款插件由Apipost团队开发的,其官方介绍是:用于IDEA项目快速生成API文档,快速查询接口、接口代码功能,并支持在IDEA中进行API......
  • 不使用第三方插件自己写一个数字递增滚动组件
    开箱即用水贴专用哈哈哈封装NumberRoller.vue组件<template><div><span:style="fontColorSize">{{formattedValue||0}}</span></div></template><script>exportdefault{props:{rollNumber:{//......
  • 手写滑动同步滚动进度条jq插件
    因需要一种滑动显示内容,并且带可拖动的进度条,即下面这种效果 找了很多插件,总有地方不能满足需求。于是决定自己手写,下面为完整源码:swiper.js1$.swiperCalculator=function(wrap,drag){2this.wrap=wrap;3this.drag=drag;4this.dWidth=drag......