自带核心插件 https://maven.apache.org/plugins/ 二....第三方插件 1.maven-assembly-plugin http://maven.apache.org/plugins/maven-assembly-plugin/ (1)打包独立运行的jar文件...的一个BUG,详见:https://issues.apache.org/jira/browse/MASSEMBLY-360 解决方案:使用maven-shade-plugin插件进行打包。...,maven在执行打包时 可能会使用mybatis-spring.jar中的spring.schemas覆盖掉spring-context.jar中的spring.schemas。...为了解决这个问题,可以在maven-shade-plugin中通过Resource Transformers将所有的spring.schemas文件中的内容都合并到一起。
目录 maven常用打包命令 1 方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包 2 方法二:使用maven-assembly-plugin插件打包在...pom.xml中配置: 3 方法三:使用maven-shade-plugin插件打包在pom.xml中配置: maven常用打包命令 1、mvn compile 编译,将Java 源程序编译成 class...1 方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包 在pom.xml中配置: ...这种方式生成jar包有个缺点,就是生成的jar包太多不便于管理,下面两种方式只生成一个jar文件,包含项目本身的代码、资源以及所有的依赖包。...3 方法三:使用maven-shade-plugin插件打包 在pom.xml中配置:
, in xxx.jar"(没有设置Main-Class)、ClassNotFoundException(找不到依赖包)等错误。...方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包 在pom.xml中配置: [html] view plain copy ...例如下面是一个通过maven-jar-plugin插件生成的MANIFEST.MF文件片段: [plain] view plain copy Class-Path: lib/commons-logging...这种方式生成jar包有个缺点,就是生成的jar包太多不便于管理,下面两种方式只生成一个jar文件,包含项目本身的代码、资源以及所有的依赖包。...方法三:使用maven-shade-plugin插件打包 在pom.xml中配置: [html] view plain copy
这个插件来打包,POM配置如下,其中最关键是那两个transformer,保证将spring.handlers和spring.schemas文件能合并起来,否则执行时会报找不到dubbo:application... maven-shade-plugin 2.4.2 <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer...manifestEntries> <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer...<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer
, 这个shade插件能够合并指定的内容,比如spring.schema等等 org.apache.maven.plugins... maven-shade-plugin 3.2.0</version...<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer...<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer...<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer
如果不进行处理,直接打包,就会出现同名配置文件覆盖的情况 本文就是要来聊聊当多个jar合并成一个jar,如何解决多个同名配置文件覆盖的情况 解决思路 通过maven-shade-plugin这个插件,利用插件的...于是在我面前就有两条路,一条是放弃maven-shade-plugin插件,比如选择其他类似的插件,比如maven-assembly-plugin,这种方案我试过,发现maven-assembly-plugin...这个插件的扩展配置,比maven-shade-plugin复杂一些,于是放弃。...扩展的思路 我并没采用直接修改maven-shade-plugin插件的方式,而是在maven-shade-plugin打包后的基础上,再进行插件定制。...我发现不管是springboot还是dubbo本身就集成一些宝藏插件,比如这个maven-shade-plugin插件,我就是dubbo那边找到的,地址在 https://github.com/apache
配置Maven构建包 使用Maven构建包只需要在pom.xml中添加如下插件(maven-shade-plugin)即可 org.apache.maven.plugins... maven-shade-plugin 2.4.1...<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer..."> META-INF/spring.schemas...上传Jar包 使用scp上传Jar包到spark-submit服务器,Jar位置在项目的out目录下 因为没有依赖第三方包所以打出怕jar会很小,使用spark-submit提示任务: spark-submit
打包是一个比较头疼的事情,默认maven打包的结果只包含项目本身的代码,如果要执行代码,还得带上依赖。maven-shade-plugin插件就能够帮我们把项目依赖的包也打进最终文件。...shade打包过程 shade插件绑定在maven的package阶段,他会将项目依赖的jar包解压并融合到项目自身编译文件中。...--只包含该项目代码中用到的jar,在父项目中引入了,但在当前模块中没有用到就会被删掉--> true..."> META-INF/spring.schemas...如果项目要求不能融合或者融合会出错,那么建议使用assembly插件打包。 参考 Apache Maven Shade Plugin maven-shade-plugin 简书
二、方法实践 2.1、assembly插件 2.1.1、pom.xml的相关配置文件如下 maven.apache.org/POM/4.0.0" xmlns...2.2、shade插件 2.2.1、pom.xml的相关配置文件如下 maven.apache.org/POM/4.0.0" xmlns:xsi="...-- maven-shade-plugin,不同的是shade可以将多个相同的配置文件追加合并 --> org.apache.maven.plugins...2.2.3、验证jar是否可执行 在XXX.jar文件下,打开终端,输入如下命令 #验证jar是否可执行,如果没有报错,说明没有问题 java -jar XXX.jar 不同点:shade可以将多个相同的配置文件追加合并...2.3、Fatjar打包工具(eclipse插件) 2.3.1、eclipse在线安装插件 1、打开eclipse,打开菜单help > Install New Sofware > Add... name
使用maven打包为可执行jar文件运行,打包插件为:maven-shade-plugin。 org.apache.maven.plugins maven-shade-plugin...spring.handlers内容: http\://mybatis.org/schema/mybatis-spring=org.mybatis.spring.config.NamespaceHandler 解决方案 在maven-shade-plugin...插件中通过Resource Transformers将所有的spring.schemas文件中的内容都合并到一起。...-- 打包可执行jar文件 --> org.apache.maven.plugins maven-shade-plugin
-- 配置打包插件,如: 依赖处理,资源复制,压缩打包等 --> maven-shade-plugin 3.1.0... maven.plugins.shade.resource.AppendingTransformer..."> META-INF/spring.schemas... maven.plugins.shade.resource.ManifestResourceTransformer
"(没有设置Main-Class)、ClassNotFoundException(找不到依赖包)等错误。...方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包 在pom.xml中配置: ?...例如下面是一个通过maven-jar-plugin插件生成的MANIFEST.MF文件片段: ?...方法二:使用maven-assembly-plugin插件打包 在pom.xml中配置: ?...方法三:使用maven-shade-plugin插件打包 在pom.xml中配置: ? 配置完成后,执行mvn package即可打包。
分隔符; 3.2 config包存在spark配置; 3.3 entity包存在命令行参数,主要通过JobParamEntity进行参数共享; 3.4 task目录实现所有的业务逻辑...打包插件: 将provided内容打入jar包中,导致错误 single maven-shade-plugin... maven-shade-plugin 2.3 ..."> META-INF/spring.schemas
一种在项目的pom引入相应的打包插件 org.apache.maven.plugins插件也是shade插件,只是此时mainclass为org.openjdk.jmh.Main ...org.apache.maven.plugins maven-shade-plugin插件,因此我们自己的shade插件要指定id。...如示例配置 org.apache.maven.plugins maven-shade-plugin
maven-shade-plugin maven 工程超级打包,包括工程依赖及对依赖包的重命名。... maven-shade-plugin 1.4..."> META-INF/spring.schemas...让我们详细看一下每一种范围: compile (编译范围) compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。...编译范围依赖在所有的classpath 中可用,同时它们也会被打包。 provided (已提供范围) provided 依赖只有在当JDK 或者一个容器已提供该依赖之后才使用。
的构建插件是作者自定义的,除了基本功能,还生成了一些脚本工具,我们直接使用: com.github.knightliao.plugin... starter-shade-maven-plugin <version...<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer...<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer...<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer
还没有进行探索了,那么本文我们就来看看这里面到底都有啥,把大力出奇迹的常见spring-boot-starter来聊一聊,以便更好地使用SpringBoot....首先映入眼帘的是:标签,熟悉Maven的朋友都知道,这个标签用来定义要继承的父pom的信息,它用来定义SpringBoot项目可能用到的依赖和插件声明以及一些资源文件声明...依赖以及spring-boot-maven-plugin插件一样,父pom.xml的源码如下: org.apache.maven.plugins maven-shade-plugin...那么这样看来我们自己的SpringBoot项目中的pom.xml文件就剩下显眼的两个依赖以及一个插件了(没有指定版本号的原因前面已经解释了),那我们接下来就来聊一聊这些非常重要的spring-boot-starter
有的时候,我们需要将项目所有依赖库打成一个fat-jar,提供给客户,同时提供对应的source.jar。...这个功能很好实现在pom.xml中增加maven-shade-plugin插件执行就可以,如下: org.apache.maven.plugins maven-shade-plugin 3.1.0 但是执行mvn install安装生成的jar包到本地仓库时并不会生成项目对应的source.jar.只有mvn deploy发布到远程仓库时才会安装source.jar,如果我没有远程仓库...,或不想发布到远程仓库,或者我只是在开发期频繁生成快照版本(SNAPSHOT),上述的maven-shade-plugin插件就生成的source.jar并不包含项目的源码,因为它找不到项目对应的源码。
Maven 构建生命周期的 package 阶段绑定,那么当 Maven 执行 mvn package 时会自动触发 maven-shade-plugin;使用很简单,在 pom.xml 添加该插件依赖即可...除了手动指定 filter 外,此插件还支持自动移除项目中没有使用到的依赖类,以此来最小化 uber jar 的体积;configuration 配置如下 插件提供了重定位功能,通过创建 class 字节码的私有副本,按新配置的 package,打包进 uber-jar 我们来看个案例,假设我们只需要 hutool 的 core 包,将其下所有的...,名字叫 qsl-a,没有任何代码,仅仅依赖 A.jar,然后利用 maven-shade-plugin 的 Relocating Classes 功能对 A.jar 中存在重名的 class 进行重定向...更实际的案例,敬请期待我下篇博客 总结 maven-shade-plugin 的输入目标是 项目原始jar 以及 项目依赖的所有jar,而输出目标是 uber-jar,所以 maven-shade-plugin
领取专属 10元无门槛券
手把手带您无忧上云