默认打包生成的jar是不能直接运行的,因为带有main方法的信息不会添加到mainifest中,需要借助maven-shade-plugin ... org.apache.maven.plugins maven-shade-plugin maven.plugins.shade.resource.ManifestResourceTransformer...execution> 如果你有一个main函数,可以通过调用java -jar...yourjar.jar运行时,只需要在插件配置中加入一句话:例如: maven.plugins.shade.resource.ManifestResourceTransformer
Maven Assembly Plugin 和 Shade Plugin 都可以用来在构建单一 Jar 包时,将所有 Dependency 打入这个最终生成的 Jar 中去。...但是两者在具体的行为上有所不同:Assembly 插件不仅会将 Dependency 中的 Class 文件打入最终的 Jar 包,还会将 Dependency 中的资源文件,诸如 properties...文件打入最终的 Jar 包。...当项目和其 Dependency 中有同名的资源文件是,就会发生冲突,项目中的同名文件便不会加入到最终的 Jar 包中。 如果这个文件是一个关键的配置文件,便会导致问题。...而 Shade Plugin 不存在这样的问题。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。...本文链接:https://blog.csdn.net/weixin_39800144/article/details/100813497 1.安装maven helper file -> setting...-> plugins -> maven helper 下载插件并安装。...2.使用 1.随便选择一个pom.xml文件 这里有text和Analyzer两种。 ? 2.选择 1.点击Analyzer,会发现有些冲突。 ? 2.选中冲突的,会有冲突细节 ?...3.在冲突的依赖上右键,会提示排除,点击即可,会自动添加依赖排除 ? 4.查看依赖,绿色的部分就是插件自动添加的排除语句 ?
缺点: 不能包含项目的依赖,如果项目有外部依赖,用户必须手动将它们添加到类路径中。 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插件可以让输出的结构清晰而标准化
6 package 7 8 jar-no-fork...当然,直接这样也行: mvn package -Dmaven.test.skip=true 另外,如果单元测试中有输出中文,eclipse的控制台里中文可能会变成乱码输出,也可以通过这个插件解决,参考配置...argLine> 8 9 argLine这里指定了UTF-8编码,解决了中文乱码问题 四、 单独打包依赖项...runtime 23 24 25 最终所有依赖项...这也意味着,你同时可以有多个打包配置规则,比如依赖项打包成文件A,所有配置打包成文件B... 五、打包时指定资源目录resouces的文件编码 1 <!
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了,部署时把jar包和lib目录,都上传到服务器上 ,然后测试一下,顺利的话 java -jar xxx.jar就可以了,如果要在后台运行,前面加 nohup
又是项目总结的时候了,说一下maven使用中遇到的问题以及解决方案。 在新项目的开发中,使用maven进行持续构建,在搭建框架的过程中经常遇到jar冲突的问题,现在来介绍下如何去除jar传递依赖。...1、项目间传递 如果我的当前项目是project1,project1要依赖project2,project1依赖project2的配置中加上true,表示依赖可选...version> compile true 这种方式排除不了我项目中对第三方jar...包所依赖的其他依赖,因为我不可能去修改第三方jar包的pom文件,所以只适合在项目组内部使用。...2、依赖过滤 将依赖于project2中的某一个jar过滤掉,如下: com.project project2
maven 中使用jar包的多个版本容易造成依赖问题,解决问题的方式可以将使用jar包的版本排除掉,比如dubbo使用netty 4.0.33版本可以将dubbo排除掉netty依赖,这样其他jar... 1、通过idea workspace.xml可以看到jar...包是被哪个jar包引入的。...2、通过去掉父依赖后,看idea左下工程依赖无相应jar后即解决了传递依赖问题。
前言 IDEA中安装Maven Helper插件。 安装重启后,点击pom.xml可以看到两个选项卡,可以查看依赖的关系。...清理、打包并安装到本地和远程Maven中 mvn clean deploy 依次执行:clean、resources、compile、testResources、testCompile、test、jar...由上面分析主要区别如下: package命令:完成项目编译、单元测试、打包功能,但打包文件未部署到本地Maven仓库和远程Maven仓库。...deploy命令:完成项目编译、单元测试、打包功能,同时把打包文件部署到本地Maven仓库和远程Maven仓库。...将calcite等依赖打入,因此用户的jar包中需要排除calcite相关依赖。
-DgroupId=OpenInstall -DartifactId=OpenInstall -Dversion=1.1.0 -Dpackaging=jar 这样就将jar发布到本地Maven仓库中了...命令说明: mvn install:install-file -Dfile=这儿是jar包的完整名字 -DgroupId=这儿随便取名,比如为A ,但是maven依赖在引用时要用这个名字...-DartifactId=这儿随便取名,比如为B ,但是maven依赖在引用时要用这个名字。 -Dversion=这儿是版本号随便写,比如为C,但是maven依赖在引用时要用这个版本号。...-Dpackaging=jar 4....在工程的pom.xml中加上maven依赖: A B</artifactId
验证查看 [INFO] Verbose not supported since maven-dependency-plugin 3.0 [INFO] com.yyy.data:yyy-data-qqq:...jar:1.0.0-DEV [INFO] +- org.springframework.boot:spring-boot-starter:jar:2.2.4.RELEASE:compile [INFO]...:jar:2.2.4.RELEASE:compile [INFO] | +- org.springframework.boot:spring-boot-starter-logging:jar:2.2.4...:jar:1.3.5:compile [INFO] | +- org.springframework:spring-core:jar:5.2.3.RELEASE:compile [INFO] | |...\- org.springframework:spring-jcl:jar:5.2.3.RELEASE:compile [INFO] | \- org.yaml:snakeyaml:jar:1.25
使用包名替换(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
插件 maven-dependency-plugin:2.8 解包当前模块依赖的maven模块中的文件 使用goal:unpack-dependencies 在配置参数includeArtifactIds...中指定要解包的模块制件ID org.apache.maven.plugins...maven-dependency-plugin ...configuration> 解包指定maven...模块中的文件 使用goal:unpack 可以指定非当前模块所以来的maven模块 org.apache.maven.plugins
org.springframework.boot spring-boot-maven-plugin
有的时候,我们需要将项目所有依赖库打成一个fat-jar,提供给客户,同时提供对应的source.jar。...这个功能很好实现在pom.xml中增加maven-shade-plugin插件执行就可以,如下: org.apache.maven.plugins maven-shade-plugin 3.1.0 maven-shade-plugin插件就生成的source.jar并不包含项目的源码,因为它找不到项目对应的源码。...经过反复摸索,找到为快照版本安装source.jar到本地仓库的办法,也很简单: 正常我们只是执行mvn install,安装快照版本到本地仓库,现在只要多一条source:jar让maven在执行install
现象 IDEA可设置自动载入Maven依赖,但有时pom文件修改却没有触发自动重新载入的动作,需要 手动强制更新 选中对应项目模块,右键选择 Reimport ?
目录 maven常用打包命令 1 方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包 2 方法二:使用maven-assembly-plugin插件打包在...1 方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包 在pom.xml中配置: ...-2.4.jar Main-Class: com.xxg.Main 只是生成MANIFEST.MF文件还不够,maven-dependency-plugin插件用于将依赖包拷贝到和资源,还包含了所有依赖包的内容。...和maven-assembly-plugin一样,生成的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文件。
maven打包生成的普通jar包,只包含该工程下源码编译结果,不包含依赖内容。...同时,maven提供以下方式生成包含所有依赖的jar文件,依赖以class的方式存在; 将此plugin添加到pom文件中 ...这个JAR包就包含了项目所依赖的所有JAR的CLASS. 3.如果不希望依赖的JAR包变成CLASS的话,可以修改ASSEMBLY插件....找到assembly在本地的地址,一般是 c:/users/${your_login_name}/.m2/\org\apache\maven\plugins\maven-assembly-plugin...\2.4 用WINZIP或解压工具打开此目录下的maven-assembly-plugin-2.4.jar, 找到assemblies\jar-with-dependencies.xml 把里面的UNPACK
方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包 在pom.xml中配置: [html] view plain copy ...com.xxg.Main指定MANIFEST.MF中的Main-Class,true会在MANIFEST.MF加上Class-Path项并配置依赖包...文件,这个文件不但包含了自己项目中的代码和资源,还包含了所有依赖包的内容。...方法三:使用maven-shade-plugin插件打包 在pom.xml中配置: [html] view plain copy ...和maven-assembly-plugin一样,生成的jar文件包含了所有依赖,所以可以直接运行。
领取专属 10元无门槛券
手把手带您无忧上云