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

Maven 基础(二) | 解决依赖冲突的正确姿势

所以说,当存在依赖冲突时,仅指望 maven 的两个原则来解决是不成熟的。不管是路径优先原则还是先定义先使用原则,都有可能造成以上的依赖冲突。那么如何解决它呢?...我们可以通过运行 maven 命令:mvn dependency:tree 查看项目的依赖树分析依赖,看那些以来有冲突,还是以上图举例:运行命令之后,查看依赖树的 log4j 依赖就会得到错误提示:(1.2.7...别急,往下看,maven 解决依赖冲突主要用两种方法: 排除低版本,直接用高版本 最理想的状况就是直接排除低版本,依赖高版本,一般情况下高版本会兼容低版本。...第一,一般情况下,第三方依赖不会出现这种情况。如果出现了,那你就到 maven 中央仓库找下兼容两个版本的依赖。如果找不到,那只能换依赖。...四、使用 Maven Helper 插件解决依赖冲突 idea plugin 中搜索 maven helper 插件安装完之后,打开 pom 文件,发现左下角有个 Depandency Analyzer

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

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

IDE环境中,可以直接用exec-maven-plugin插件来运行java application,类似下面这样: 1 2 org.codehaus.mojo...环境,只能用 java -jar xxx.jar这种方式来运行,下面是一些处理细节: 一、依赖的处理 java application运行时需要查找依赖的第三方jar,如果查找classpath失败,...就会报错,可以先用 mvn dependency:copy-dependencies -DoutputDirectory=target/lib 命令,把依赖的jar包全部导出到target/lib这个目录下...Main-Class: ctas.importer.reader.app.Program 7 Archiver-Version: Plexus Archiver 其中第4行指定了classpath,也就是所依赖的...> 15 第7行指定Main-Class,第9行指定classpath的相对路径,这样mvn package后,清单文件里就会自动添加Main-Class和Class-Path这二

1.9K90

IDEA2020.1版本maven依赖没法加载关联解决

前言 博主最近更新IDEA2020.1版本后,发现有部分项目maven加载不到,所有代码爆红,现象如下: maven视窗里,缺少了pluains、Dependencies两个模块,然后项目里的代码全线爆红...,提示找不到相关的依赖。...下面列出博主尝试过的方法,都没效果,避免大家在走弯路 删除.iml文件、删除.idea目录然后重新加载 删除IDEA工作目录,相当于重新安装IDEA了 勾选Always update snapshots...请手动降低你的maven版本到3.3.x或3.2.x版本即可解决问题。怎么设置maven home就不啰嗦了,网上很多教程。...改完后记得手动刷新下maven依赖,点击如下图所示按钮,立马见效: 结语 如果你遇到了相同的问题,希望你好运,可以看到我这篇博文

18220

一次Maven依赖冲突采坑,把依赖调解、类加载彻底整明白了

今年年初的时候,阅读过《Maven实战》,当时有了解到Maven可以依赖调解,即当包版本不一致时,会根据一定规则选择相应的包来加载,从而避免冲突。...下面我们想想为什么需要Maven依赖调解,如果不调解行不行。...当使用Maven的过程中,如果同时引入了groupId和artifactId相同而version不同的包时,Maven会认为发生了依赖冲突,将进行依赖调解,通过两个原则决定使用哪个版本的包:第一原则,路径最近者优先...,则在于ClassLoader的逻辑,当同名类被加载时,则不会再被加载,即同一个类只会被加载一次。...而Maven依赖调解将使得只有一个明确版本的包参与构建,从而避免不确定性。 3. 排查在线问题的利器-Arthas Arthas,早有听说,但一直使用过,这次我尝试了下,觉得确实可以,安利下。

1.6K40

sbt的依赖管理逻辑

但是在这之前,你需要创建一个 Maven 项目,然后在 pom.xml 文件中添加 Gson 作为依赖。 接下来,Maven 将会下载 Gson 库并将其添加到你的项目中。...它会根据声明中指定的组、模块和版本信息来确定正确依赖,并下载对应的 JAR 文件。 4 依赖冲突解决 在解析依赖的过程中,可能会出现依赖冲突的情况,即同一个模块被多个不同的版本所依赖。...5 更新元数据 一旦依赖被解析和下载,sbt 将更新项目的元数据,以便后续构建过程可以正确地处理这些依赖。这些元数据通常存储在项目目录下的 .ivy2 或者 .sbt 目录中。...其实总的来说,sbt 的依赖的使用的这个过程涉及读取配置文件、解析依赖声明、下载依赖、解决依赖冲突等步骤,而这些步骤的唯一目的以确保项目能够正确地获取和管理其所需的外部依赖

9010

开发一个属于自己的Spring Boot Starter

这是因为starter里已经帮我们整合了各种依赖包,避免了依赖包缺失或依赖包之间出现版本冲突等问题。...而开发一个starter也很简单,只需要以下步骤: 新建一个Maven项目,在pom.xml文件中定义好所需依赖; 新建配置类,写好配置和默认值,使用@ConfigurationProperties指明配置前缀..." xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0...并使用@ConfigurationProperties指明配置前缀,用于加载配置文件对应的前缀配置: package com.example.starter.demo.properties; import...lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; /** * 属性配置类,用于加载配置文件对应的前缀配置

4.5K30

开发一个属于自己的Spring Boot Starter

这是因为starter里已经帮我们整合了各种依赖包,避免了依赖包缺失或依赖包之间出现版本冲突等问题, 以及完成了许多基础配置和自动装配,让我们可以在最简使用下,跳过绝大部分的配置,从而达到开箱即用的效果...而开发一个starter也很简单,只需要以下步骤: 新建一个Maven项目,在pom.xml文件中定义好所需依赖; 新建配置类,写好配置和默认值,使用@ConfigurationProperties指明配置前缀..." xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0...并使用@ConfigurationProperties指明配置前缀,用于加载配置文件对应的前缀配置: package com.example.starter.demo.properties; import...lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; /** * 属性配置类,用于加载配置文件对应的前缀配置

88531

重磅 Spring Boot 2.1.4 正式版发布!

Bug Fixes - BUG修复 如果没有thymeleaf-spring5,则ThymeleafAutoConfiguration会失败#16341 当spring.gson.serialize-nulls...MongoReactiveAutoConfiguration创建使用Netty的MongoClient时,EventLoopGroup线程阻止JVM退出#16087 为PooledJMS#16086重命名Maven...修复NullPointerException 即使Tomcat的本机库不可用,也会配置AprLifecycleListener#16040 调试模式不记录与Web和SQL相关的记录器#16018 使用Maven...构建的胖jar不会将META-INF / .kotlin_module文件重新打包到BOOT-INF / classes#16004 仅Gradle POM依赖导致jar应用程序加载程序失败#16001...15984之前订购TaskExecutionAutoConfiguration 使用withBasicAuth#15982创建新的TestRestTemplate时,请勿替换请求工厂 可能会从多版本jar文件加载错误的条目

1.2K30
领券