首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Maven打包之maven-shade-plugin

打包是一个比较头疼的事情,默认maven打包的结果只包含项目本身的代码,如果要执行代码,还得带上依赖。maven-shade-plugin插件就能够帮我们把项目依赖的包也打进最终文件。...shade打包过程 shade插件绑定在maven的package阶段,他会将项目依赖的jar包解压并融合到项目自身编译文件中。...如果shade只有这一个功能,那它并不能够满足开发者的需求。因此,它提供了ResourceTransformer的接口,处理扫描到的资源文件,修改最终的输出结果,这个功能正是大家所需要的。...maven-shade-plugin 3.1.1 <configuration...如果项目要求不能融合或者融合会出错,那么建议使用assembly插件打包。 参考 Apache Maven Shade Plugin maven-shade-plugin 简书

15.2K30
您找到你想要的搜索结果了吗?
是的
没有找到

Maven - 打包之争:Jar vs. Shade vs. Assembly

缺点: 不能包含项目的依赖,如果项目有外部依赖,用户必须手动将它们添加到类路径中。 Shade 打包方式: 描述: Maven Shade插件允许创建一个可执行的JAR文件,其中包含所有依赖。...Shade方式生成可执行JAR,但可能导致文件较大; 用来打可执行jar包,也就是所谓的fat JAR包。...Jar 打包方式_maven-jar-plugin Overview 使用maven-jar-plugin插件, 默认的打包方式,用来打普通的project JAR包 ....Shade 打包方式_maven-shade-plugin Overview 插件:使用maven-shade-plugin插件 maven-shade-plugin提供了两大基本功能: 将依赖的jar...日常使用比较多的是maven-assembly-plugin插件 例如:大数据项目中往往有很多shell脚本、SQL脚本、.properties及.xml配置项等,采用assembly插件可以让输出的结构清晰而标准化

60110

Maven 插件

Maven 实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成。...Maven 插件通常被用来: 创建 jar 文件 创建 war 文件 编译代码文件 代码单元测试 创建工程文档 创建工程报告 插件通常提供了一个目标的集合,并且可以使用下面的语法执行: mvn...code>mvn compiler:compile 插件类型 Maven 提供了下面两种类型的插件: 类型 描述 Build plugins 在构建时执行,并在 pom.xml 的 元素中配置...Reporting plugins 在网站生成过程中执行,并在 pom.xml 的 元素中配置。 下面是一些常用插件的列表: 插件 描述 clean 构建之后清理目标文件。删除目标目录。...每个插件可以有多个目标。 你可以定义阶段,插件会使用它的 phase 元素开始处理。我们已经使用了 clean 阶段。 你可以通过绑定到插件的目标的方式来配置要执行的任务。

51220

Mavenmaven 插件开发实战

Mavenmaven 插件开发实战 ? 前言 众所周知,maven 实质上是一个插件执行框架,所有的工作都是通过插件完成的。...这些命令,其实底层都是一个一个的 maven 插件。 如何开发自己的插件 1. maven 插件的命名规范 在写一个项目之前,第一件事就是确定一个名称。maven 插件也不例外。...而 @phase 是绑定插件执行的生成周期,比如你绑定在 clean 这个周期,那你在执行 clean 的时候会自动触发你的插件。 @parameter 用来指定插件的参数。...// 提示此Mojo需要被直接调用(而非绑定到生命周期阶段) requiresDirectInvocation = , // 提示此Mojo不能在离线模式下运行...3.0) // 何时执行此Mojo @Execute( goal = "", // 如果提供goal,则隔离执行此Mojo phase

1.7K40

Maven Failsafe 插件

maven FailSafe插件是用来执行集成测试的,Surefire插件则是用来执行单元测试的。...说到这里,笔者觉得有必要提一下maven的生命周期与集成测试相关的四个阶段: 1.pre-integration-test:该阶段用来准备集成测试环境,类似于junit单元测试中的setUp 2.integration-test...:见名知意,该阶段执行集成测试 3.post-integration-test:用来销毁集成测试的环境,类似于junit单元测试中的tearDown 4.校验:该阶段用于分析集成测试的结果 FailSafe...插件工作在上面的integration-test以及verify阶段,与surefire插件不同的是该插件不会因为集成测试中失败而终止整个过程,也就是说post-integration-test可以确定执行...FailSafe插件有两个goal:integration-test 和verify。

48510

Maven Release 插件

Maven 使用 maven-release-plugin 插件来完成以下任务。 mvn release:clean 清理工作空间,保证最新的发布进程成功进行。...mvn release:prepare 执行多种操作: 检查本地是否存在还未提交的修改 确保没有快照的依赖 改变应用程序的版本信息用以发布 更新 POM 文件到 SVN 运行测试用例 提交修改后的 POM...文件 为代码在 SVN 上做标记 增加版本号和附加快照以备将来发布 提交修改后的 POM 文件到 SVN mvn release:perform 将代码切换到之前做标记的地方,运行 Maven 部署目标来部署...打开命令终端,进入到 C:\ > MVN >bus-core-api 目录下,然后执行如下的 mvn 命令。...C:\MVN\bus-core-api>mvn release:prepare Maven 开始构建整个工程。构建成功后即可运行如下 mvn 命令。

48510

常用Maven插件

Maven现在是Java开发依赖包管理的标准了,大部分人可能都只会熟悉 编写dependency标签,而真正编译,打包都是通过插件来完成的,这篇文章整理下工作中用的比较多的Maven插件,更详细的Maven...插件请参考官网:https://maven.apache.org/plugins/index.html。...一、标准插件 1、clean 清除编译好的包,一般和其它插件一起用,如mvn clean install 2、compiler 编译源码; 可通过compilerVersion属性设置JDK版本 <...如果想查看增量覆盖率,可通过工具diff-cover处理,这是一个Python脚本,需要先安装Python相关环境; 四、assembly插件 主要作用是制作项目分发包,包中包含了项目的可执行文件、源代码等等...支持常用的文件格式:zip、tar.gz、jar 和 war 等; 五、archetype插件 用于生成项目骨架; 直接执行以下命令就可以生成项目框架: mvn archetype:generate

64220

聊聊如何避免多个jar通过maven打包成一个jar,多个同名配置文件发生覆盖问题

于是在我面前就有两条路,一条是放弃maven-shade-plugin插件,比如选择其他类似的插件,比如maven-assembly-plugin,这种方案我试过,发现maven-assembly-plugin...这个插件的扩展配置,比maven-shade-plugin复杂一些,于是放弃。...扩展的思路 我并没采用直接修改maven-shade-plugin插件的方式,而是在maven-shade-plugin打包后的基础上,再进行插件定制。...如果maven-shade-plugin不放置顺序得在spring-factories-merge-plugin之前,则spring-factories-merge-plugin的执行阶段就要比maven-shade-plugin...靠后,比如maven-shade-plugin在package阶段执行,则spring-factories-merge-plugin就得在install或者deploy阶段执行 打包后的效果图如下 图片

1.6K70
领券