首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

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

缺点: 不能包含项目的依赖,如果项目有外部依赖,用户必须手动将它们添加到类路径中。 Shade 打包方式: 描述: Maven Shade插件允许创建一个可执行的JAR文件,其中包含所有依赖。...Assembly方式最灵活,可以根据项目需求创建定制分发包 ; 自定义的打包结构,也可以定制依赖等。...Shade 打包方式_maven-shade-plugin Overview 插件:使用maven-shade-plugin插件 maven-shade-plugin提供了两大基本功能: 将依赖jar...包打包到当前jar包(常规打包是不会将所依赖jar包打进来的); 对依赖jar包进行重命名(用于类的隔离); 使用 maven-shade-plugin 只存在一个goal shade:shade,需要将其绑定到...日常使用比较多的是maven-assembly-plugin插件 例如:大数据项目中往往有很多shell脚本、SQL脚本、.properties及.xml配置等,采用assembly插件可以让输出的结构清晰而标准化

59110

maven: 打包可运行的jar包(java application)及依赖处理

IDE环境中,可以直接用exec-maven-plugin插件来运行java application,类似下面这样: 1 2 org.codehaus.mojo...环境,只能用 java -jar xxx.jar这种方式来运行,下面是一些处理细节: 一、依赖的处理 java application运行时需要查找依赖的第三方jar,如果查找classpath失败,...: Plexus Archiver 其中第4行指定了classpath,也就是所依赖jar包在什么地方,第6行表示main函数的入口类,默认情况下mvn clean package生成的jar包里,清单文件上并没有这...2行,需要在pom.xml中添加插件 1 2 org.apache.maven.plugins 3 ...这二 ok了,部署时把jarlib目录,都上传到服务器上 ,然后测试一下,顺利的话 java -jar  xxx.jar就可以了,如果要在后台运行,前面加 nohup

1.9K90

Maven依赖Jar冲突排查及解决

使用包名替换(Shade) 冲突检测插件 IDEA中安装Maven Helper插件。...) All Dependencies as Tree(树形式查看所有依赖,冲突的依赖会红字显示) 注意 排查冲突的时候推荐使用第二种方式找到冲突,搜索冲突用第三种方式排除冲突。...Maven Helper插件 解决冲突有两种方式 检测冲突的插件升降版本解决 Jar包隔离 包名替换 归纳了解了几种业内的解决方案如下,各有优劣 spring boot方式,统一管理各个组件版本,简洁高效...shade 也有maven插件,通过更改jar包的字节码来避免jai包冲突,jar包冲突的本质是类的全限定名(包名+类名)冲突了,通过全限定名不能定位到你想用的那个类,maven-shade插件可以更改...这种情况无论如何调整依赖都无法解决冲突的问题 sofa-ark sofa-ark 框架支持单独application sofaboot 两种方式,满足单独使用web框架下的jar包隔离,还能基于zk

74140

Maven学习】Maven打包生成普通jar包、可运行jar包、包含所有依赖jar

使用maven构建工具可以将工程打包生成普通的jar包、可运行的jar包,也可以将所有依赖一起打包生成jar; 一、普通的jar包 普通的jar包只包含工程源码编译出的class文件以及资源文件,而不包含任何依赖...;同时还包括pom文件,说明该包的依赖信息; 在工程pom文件下这样写,可生成普通的jar包: jar 或者,不写,因为packaging默认打包类型为jar...二、包含所有依赖jar包 普通的jar包,只在pom文件中包含依赖信息,而不包含真正的依赖,但同时maven也可以打包生成包含所有依赖jar文件,可参考本博客文章 Maven打包生成包含所有依赖的...jar包 三、可运行jar包 可运行的jar包,除包含工程源码编译结果外,还包括所有依赖,可利用java -jar 命令直接运行。...(所有的依赖jar包直接变成了class) 使用maven生成可运行jar包,可参考本博客文章 maven打包生成可执行jar文件。

3.2K20
领券