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

Maven解决jar版本冲突

jar冲突原因: jar包冲突主要是由于依赖传递导致的,不同的jar包依赖同一个不同版本jar包,导致冲突。可以看下下图。 B和C都依赖D,但是不同的版本,所以在使用的过程中可能会出现问题。...jar包 这是maven自动做的依赖解决,也就是不需要做任何处理。...手动解决依赖冲突  先说两个方法,然后在说下怎么做 排除依赖:用于排除某项依赖的依赖jar版本锁定 排除依赖就是在依赖库中排除对应版本jar包,断开依赖,在程序运行的时候会寻找其他的对应的版本...API  版本锁定就是在pom中直接声明对应的jar版本,maven就不会依赖其他的版本了,这个需要原理是基于groupId 和 artifactId 做定位。...包 版本锁定 希望能对大家有所帮助。

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

maven打包出来的jar包引入的其他jar版本不是pom文件配置的版本

项目上使用flyway来管理数据库版本,但是遇到了一件奇怪的事,这件事发生的时间点是springboot从2.3.12升级到2.6.7版本,升级后到底发生了什么,到底是谁引入了flyway...8.0.5版本呢,博主在pom中显示引入的flyway版本为7.1.1,在这个公共jar包里面执行mvn dependency:tree看到的flyway版本也是7.1.1,为什么这个公共jar包被其他项目引入后执行...mvn dependency:tree却显示 flyway的版本为8.0.5,而且显示也是由这个公共jar包引入的。        ...刚开始没去想springboot版本升级的问题,后来找到问题后再去看确实就是springboot版本升级导致的,因为笔者在dependencymanagement中引入了spring-boot-dependencies...dependencies中的版本,在spring-boot-dependencies前面增加flyway的依赖版本

17510

jar项目改造成maven项目「jeenotes maven版本

1、前言 最近群里小伙伴在问有没有maven版本的 jeenotes-ssm「之前是本地lib方式」,今天抽空就把改造maven方式码出来了,以供参考,这下不用再催我了~ 本文环境:MyEclipse...这个地方需要提前说一下,如果你需要引入的依赖比较简单,也就是项目需要的依赖本地maven仓库都有,那么直接在maven中拉取就好了,但是比较麻烦的是需要手动指定,我举个例子,比如我项目中使用到了七牛云7.2.11版本...1.0 system ${lib.dir}/slf4j-api-1.6.6.jar...1.0 system ${lib.dir}/protostuff-runtime-1.0.8.jar...[image-20200525195237171] 3、最后补充 本节源码地址:https://niceyoo.lanzous.com/iczsspi 旧版本jeenotes-ssm地址:https:/

77540

Java学习-如何编译适配java版本jar

如何编译适配java版本jar包 在日常浏览github社区的过程中,会碰到一些好用的java项目,但作者往往只提供源码或与本地jdk不适配的jar包,这时候可以自行进行编译 打开项目 build...往往会出现以下报错信息: java: 错误: 不支持发行版本 17 files—>settings ctrl+alt+shift+s project选择对应版本 新建一个maven项目 依次运行...clean、compile、package、install 这样可以成果编译出来,但是运行jar包会提示没有主清单属性 这时候可以选择另一种编译方法 Artifacts ——–> JAR ——–>...From module with depenencies 然后选择主类(程序入口) 重新选择 build artifact 这时候会在项目目录里生成一个out目录,jar包就在里面 成功编译,

83010

支持多JDK版本下运行的Jar文件打包方式

本文内容:在Java 9增强了JAR版本字节码文件格式的支持,同一个Jar包可以包含多个Java版本的class文件。...一、基本使用方法 多版本的字节码发行jar包,需要在其MANIFEST.MF中做以下的声明: Multi-Release: true 在jar包的META-INF/versions文件目录里面可以包含多个版本的...编译 将Java8 、Java9的IOUtil.java代码分别在JDK8、JDK9的版本下分别编译成class字节码文件,并将class文件按照如下的目录结构打成保存,并打jar包。...(先按java8版本打成jar包,然后修改MANIFEST.MF文件,添加java 9字节码class文件即可) D:\multi-release-jar-example\my-lib-jar>tree...包 D:\multi-release-jar-example>java -cp my-lib.jar com.example.Main IOUtil 使用java 9 版本 测试字符串 在JDK 8的环境下运行这个

2.5K20

maven:shade 生成快照版本(SNAPSHOT)的fat-jar,同时生成对应的source.jar

有的时候,我们需要将项目所有依赖库打成一个fat-jar,提供给客户,同时提供对应的source.jar。...包到本地仓库时并不会生成项目对应的source.jar.只有mvn deploy发布到远程仓库时才会安装source.jar,如果我没有远程仓库,或不想发布到远程仓库,或者我只是在开发期频繁生成快照版本...(SNAPSHOT),上述的maven-shade-plugin插件就生成的source.jar并不包含项目的源码,因为它找不到项目对应的源码。...经过反复摸索,找到为快照版本安装source.jar到本地仓库的办法,也很简单: 正常我们只是执行mvn install,安装快照版本到本地仓库,现在只要多一条source:jar让maven在执行install...命令的同时生成source.jar并安装到本地仓库,如下: mvn source:jar install

88910

版本不兼容Jar包冲突该如何是好?

经过一通常规和非常规操作以后,往往会找到同一个Jar包引入了多个不同的版本,这时候一般排除掉低版本、保留高版本就可以了,这是因为一般Jar包都是向下兼容的。...如下图所示,Project表示我们的项目,Dependency A表示我们的业务依赖,Dependency B表示中间件依赖,如果业务依赖和中间件依赖都依赖同一个Jar包C,但是版本却不一样,分别为0.1...在最近的项目里,我们需要使用Guava的高版本Jar包,但是发现中间件依赖的是低版本且与高版本不兼容的Jar包,面对这种两难,我们肯定是“老婆”和“妈妈”都要救,于是我们开始寻求解决方案。...maven-shade-plugin插件重命名并打包,优雅地解决了项目中不兼容多个版本Jar包的冲突问题。...如果遇到类似需要支持版本不兼容Jar包共存的场景,可以考虑使用maven-shade-plugin插件,这种方法比较轻量级,可用于项目中存在个别不兼容Jar包冲突的场景,简单有效,成本也很低。

1.9K30

Jar 命令打包 jar

(多主类) 还有一种Multiple Main Classes情况,如果你的应用程序可能有命令行版本 和GUI版本,或者一些不同的应用却共享很多相同的代码,这时你可能有多个Main Class,我们建议你采取这样的策略...目前是什么版本?使用什么版本的类库?解决的方法很多 ,manifest提供了一个较好的方法,你可以在manifest文件中描述每一个包的信息。...Java 秉承了实现说明与描述分离的原则,package 的描述 定义了package 是什么,实现说明 定义了谁提供了描述的实现,描述和实现包含 名、版本号和提供者。...========== 各部分解释: Manifest-Version MF文件版本号 Main-Class 包含main方法的类 Class-Path 执行这个jar包时的ClassPath...Manifest-Version、Main-Class和Class-Path后面跟着一个英文的冒号,冒号后面必须跟着一个空格,然后才是版本号、类和ClassPath。 2.

5.5K30

maven 依赖jar包时版本冲突的解决:mvn dependency:tree -Dverbose

maven 依赖jar包时版本冲突的解决: mvn dependency:tree -Dverbose ?...四种解决方式: 1、第一声明优先原则: 在pom.xml配置文件中,如果有两个名称相同版本不同的依赖声明,那么先写的会生效。 所以,先声明自己要用的版本jar包即可。...2、路径近者优先: 直接依赖优先于传递依赖,如果传递依赖的jar版本冲突了,那么可以自己声明一个指定版本的依赖jar,即可解决冲突。...3、排出原则: 传递依赖冲突时,可以在不需要的jar的传递依赖中声明排除,从而解决冲突。...(最常使用) 在配置文件pom.xml中先声明要使用哪个版本的相应jar包,声明后其他版本jar包一律不依赖。

9K20

如何替换jar中的jar配置

spring boot项目,使用jar方式打包部署;有时候我们需要替换项目中某个引用jar,又不想将整个项目重新打包。...但是替换jar包中引用的jar包,用这样的方式是不可以的,在替换完成后启动项目,会报以下错误: Caused by: java.lang.IllegalStateException: Unable to...Please check the mechanism used to create your executable jar file # 解决 可通过jar命令先将jar包解压,在解压目录中将引用jar...包替换后,再重新压缩,命令如下(注意替换**为自己实际jar包名称) 解压: jar -xvf ./**.jar 替换引用jar,替换完成后重新压缩打包: jar -cfM0 **.jar ./...最后启动jar即可 nohup java -jar summer-0.0.1.jar --server.port=8080 >summer.log 2>&1 &

2.5K20
领券