你用过 Maven Shade 插件吗?

news2024/10/7 6:45:17

文章首发地址
在这里插入图片描述

Maven Shade插件是Maven构建工具的一个插件,用于构建可执行的、可独立运行的JAR包。它解决了依赖冲突的问题,将项目及其所有依赖(包括传递依赖)合并到一个JAR文件中。
下面是对Maven Shade插件的一些详解:

  1. 配置Maven Shade插件: 在项目的pom.xml文件中添加Maven Shade插件的配置。
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-shade-plugin</artifactId>
      <version>3.2.4</version>
      <!-- 配置插件的其他属性 -->
    </plugin>
  </plugins>
</build>
  1. 执行Maven Shade插件: 通过在命令行中运行mvn package等构建命令来执行Maven Shade插件,或者在Maven的集成开发环境(IDE)中执行相关命令。

  2. 插件属性配置: 可以配置一些插件属性来满足特定的需求,例如指定输出文件名、指定Main Class、排除或包含特定的类、资源文件等。

<configuration>
  <finalName>my-app</finalName> <!-- 指定输出文件名 -->
  <transformers>
    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
      <mainClass>com.example.MyApp</mainClass> <!-- 指定Main Class -->
    </transformer>
  </transformers>
  <filters>
    <filter>
      <artifact>com.example:dependency</artifact> <!-- 排除依赖 -->
      <excludes>
        <exclude>com/example/excluded/**</exclude> <!-- 排除特定类或资源 -->
      </excludes>
    </filter>
  </filters>
</configuration>
  1. 插件目标(Goal): Maven Shade插件提供了多个目标(goal)供选择,常用的目标包括shade:shade和shade:shade-relocation。

    • shade:shade目标将项目及其依赖项合并到一个JAR文件中。
    • shade:shade-relocation目标在合并依赖项时,将那些和项目中已有的包冲突的依赖项进行包重定位,避免冲突。
  2. 生成的JAR文件: Maven Shade插件执行成功后,将生成一个合并后的JAR文件,包含了项目及其所有依赖。这个JAR文件可以作为一个可执行的、可独立运行的应用程序进行分发。

Maven Shade插件在构建可执行的JAR包时非常有用,特别是当项目依赖项较多或存在依赖冲突时。它通过将所有依赖项合并到一个JAR文件中,简化了部署和分发过程,使得应用程序更易于执行和管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/973957.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

慕尼黑主题活动!亚马逊云科技生成式AI全新解决方案,引领未来移动出行领域

IAA作为世界五大车展之一&#xff0c;一直对全球汽车产业的发展起着关键作用&#xff01;2023年9月5日在慕尼黑开幕的IAA MOBILITY 2023以“体验联动智慧出行”为主题&#xff0c;紧跟移动出行领域的前沿变化&#xff0c;将汇集整车企业、开发者、供应商、科技公司、服务提供商…

Growly Write for Mac:一个简单但功能强大的文本工具,让你的写作更轻松

Growly Write for Mac是一款简单而高效的文本工具&#xff0c;让你可以在Mac电脑上轻松处理文字任务&#xff0c;并跟踪文件结构。这个应用程序并不像Word那样拥有丰富的功能&#xff0c;但它的简约设计使得那些基本的文字处理任务变得轻松便捷。 如果你厌倦了复杂且耗时的文字…

ERROR 1062 (23000): Duplicate entry ‘%-root‘ for key ‘user.PRIMARY‘

一、报错 MySQL执行命令&#xff1a; UPDATE user SET host % WHERE user root; 报错&#xff1a; ERROR 1062 (23000): Duplicate entry %-root for key user.PRIMARY mysql> UPDATE user SET host % WHERE user root; ERROR 1062 (23000): Duplicate entry %-roo…

QT程序打包成可执行exe文件

1.编译时选择Realase 2.复制编译的exe文件到新文件夹 3.打开qt命令行工具 4.使用windeployqt添加qt依赖 cd /d E:\Qtproject\exewindeployqt NauDuShuiWen.exe 5.浏览&#xff0c;选择编译生成的文件&#xff08;下图注意选择递归&#xff09; 6.生成XXXXX_boxed.exe

AI:07-基于卷积神经网络的海洋生物的识别

当涉及海洋生物的识别和研究时,基于深度学习的方法已经展现出了巨大的潜力。深度学习模型可以利用大量的图像和标记数据来自动学习特征,并实现高准确度的分类任务。本文将介绍如何使用深度学习技术来实现海洋生物的自动识别,并提供相应的代码示例。 数据收集和预处理 要训…

『Bug挖掘机 - 赠书02期』|〖Effective软件测试〗

大家好&#xff0c;我是洋子&#xff0c;前段时间给大家推荐了《测试设计思想》&#xff0c;今天再给大家推荐一本软件测试领域的新书 这本书就比较接地气了&#xff0c;是一本软件测试的入门书籍&#xff0c;但同样适用于1-3年软件测试经验的读者阅读 这本书第一章就用Java代…

Speech | 语音处理,分割一段音频(python)

本文主要是关于语音数据在处理过程中的一些脚本文件以及实例&#xff0c;所有代码只需要更改所需处理的文件路径&#xff0c;输出路径等&#xff0c;全部可运行。 目录 所需环境 方法1&#xff1a;将一整段音频按时间批量切成一个一个音频 方法2&#xff1a;将一整段音频按…

csdn关注打开文章,自动取关脚本(设置为仅粉丝查看的文章)

一. 内容简介 csdn关注打开文章&#xff0c;自动取关脚本(设置为仅粉丝查看的文章) 二. 软件环境 2.1 Tampermonkey 三.主要流程 3.1 创建javascript脚本 点击添加新脚本 就是在 (function() {use strict;// 在这编写自己的脚本 })();脚本&#xff0c;含解析 // UserS…

测试开发笔记2023年8月精华版

面向思维编写用例的小窍门测试是有发展前途的关于Python和Java竞争力当你觉得测试没意思时测试用例很难管理我为什么不学编程语言了一个测试背锅案例分析

无涯教程-JavaScript - HOUR函数

描述 HOUR函数返回时间值的小时。小时以整数形式给出,范围从0(上午12:00)到23(下午11:00)。 语法 HOUR (serial_number)争论 Argument描述Required/OptionalSerial_number 您想要找到的包含小时的时间。 可以输入时间 作为引号内的文本字符串(如" 6:45 PM") 为十…

SRM系统送样管理:优化供应链合作

一、SRM系统送样管理的定义&#xff1a; SRM系统送样管理是指利用供应商关系管理系统对供应商送样过程进行管理和控制的一系列活动。该管理模块涵盖了送样计划制定、样品跟踪、检验结果记录和供应商反馈等功能&#xff0c;以确保供应商提供的样品符合质量要求&#xff0c;并建…

【AIGC】【图像生成】controlNet介绍(原理+使用)

文章目录 安装1、ControlNet&#xff1a;AI绘画1.1、ControlNet的本质是文生图(txt2img)2.2、预处理器 & 模型选择1.3、参数配置 2、ControlNet 模型分类2.1、草图类(6个)2.2、高级特征类(3个)3.3、高级类(5个) 3、配置参数4、基本原理&#xff1a;可控的SD模型5.可视化效果…

CopilotHub招聘产品设计师;大模型岗位面试官的一线分享;AI应用创业的共识与非共识;LangChain学习手册 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; CopilotHub 招聘产品设计师&#xff0c;AI Agent C 端产品、远程工作、无限制带薪假期 https://app.copilothub.ai 这是一家成立于202…

抖店电商运营,新开通抖店正确的起店方法,新手商家必看做店教程

我是王路飞。 当你的抖店开通之后&#xff0c;也做好了店铺的一些基础搭建工作&#xff0c;那么之后的任务&#xff0c;就是起店了。 只有起店之后&#xff0c;你的店铺权重才会越来越高&#xff0c;不管走自然流量还是找达人带货&#xff0c;都更有优势。 所以今天给你们分…

OpenWrt系统开发笔记

openWrt英文官网&#xff1a; https://openwrt.org/ 中文官网&#xff1a; http://www.openwrt.org.cn/ 一、开发环境及编译 在github上有两个源码使用的比较多   一个是lede,地址为&#xff1a;https://github.com/coolsnowwolf/lede   另一个为OpenWrt的官方源码&#…

【创新项目探索】大数据服务omnidata-hive-connector介绍

omnidata-hive-connector介绍 omnidata-hive-connector是一种将大数据组件Hive的算子下推到存储节点上的服务&#xff0c;从而实现近数据计算&#xff0c;减少网络带宽&#xff0c;提升Hive的查询性能。目前支持Hive on Tez。omnidata-hive-connector已在openEuler社区开源。 …

SwiftUI简单基础知识学习

以下是一个大致的学习计划&#xff0c;将SwiftUI的知识分成12个主题&#xff1a; SwiftUI 简介和基础语法视图和布局状态和数据流按钮和用户输入列表和数据展示导航和页面传递动画和过渡效果手势和交互绘制和绘图多平台适配网络和数据请求实际项目实践和高级主题 每个主题可以…

rac异常hang死故障分析(sskgxpsnd2)

x86虚拟化的平台麒麟系统的一套RAC。事件梳理20:24左右&#xff0c;发现一个节点hang死&#xff0c;关闭操作没有响应。关闭hang死节点&#xff0c;另一个节点也发生hang死&#xff0c;然后重启了另一个节点。 无效分析部分 检查gi的alert日志 有一个很大跨度的时间回退 再看…

辛普森近似求值

辛普森近似求解 公式证明任意一个对称区间的一元二次函数定积分拆分求和:strawberry: 总结 : 如果我们把六分之一乘进去我们只不过在指定的区间采集数据六个求平均&#xff0c;乘以采集数据区间的微元宽度&#xff08;历史上不少的手稿用h&#xff0c;翻译为微元高度&#xff0…

Python虚拟环境venv下安装playwright介绍及记录

playwright介绍 Playwright是一个用于自动化Web浏览器测试和Web数据抓取的开源库。它由Microsoft开发&#xff0c;支持Chrome、Firefox、Safari、Edge和WebKit浏览器。Playwright的一个主要特点是它能够在所有主要的操作系统&#xff08;包括Windows、Linux和macOS&#xff09…