1:前言 做软件开发这几年遇到了许多的问题,也总结了一些问题的解决之道,之后慢慢的再遇到的都是一些重复性的问题了,当然,还有一些自己没有完全弄明白的问题.如果做的事情是重复的,遇到重复性问题的概率也就会比较多了,如果是在一个新的领域里玩,遇到的问题又都是新的,自己从来没有见过的,但是问题的解决思路基本是类似的.下面这个问题,我觉得值得一记,因为以后还会再遇到类似的,我希望自己能很快的将其解决掉. 2:报错信息 如下是更新项目后,启动项目时抛出的部分错误信息. 十二月 14, 2016 7:52:…
举例A依赖于B及C,而B又依赖于X.Y,而C依赖于X.M,则A除引B及C的依赖包下,还会引入X,Y,M的依赖包(一般情况下了,Maven可通过<scope>等若干种方式控制传递依赖).这里有一个需要特别注意的,即B和C同时依赖于X,假设B依赖于X的1.0版本,而C依赖于X的2.0版本,A究竟依赖于X的1.0还是2.0版本呢?这就看Classloader的加载顺序了,假设Classloader先加载X_1.0,而它就不会再加载X_2.0了,如果A恰恰希望使用X_2.0呢,血案就这样不期而遇了.…
我自己遇到了一个问题: 我需要使用一个api,这个api已经引入包:slf4j-log4j12 所以,在自己的pom中,如果引入了这个包,需要exclude掉: 因为在pom.xml中查询是找不到的, 所以使用了 mvn dependency:tree; 就显示出来了:发现slf4j-log4j12 在包:com.sankuai.sc.yue 里面,直接exclude 就行了: slf4j-log4j12…
博客:maven依赖jar包时版本冲突的解决…
1 进入项目根目录,先通过 npm install 命令安装项目所需依赖,再通过 vue ui 命令打开 Vue Cli 提供的图形化界面,选择项目所在文件夹将项目导入. 出现问题 npm install 时出现 : " 缺少 'node_modules'.请安装依赖后再尝试导入 "错误 解决方法 首先查看在项目文件目录下是否有 node_modules文件夹,如有则可以先将其删除,因为其中的文件包可能没有下载完整. 其次查看项目文件目录下package-lock.json文件是否存在…
调节原则 1 路径近者优先原则 自己添加一个想要依赖的版本 2第一声明者优先原则 谁排在前面就用谁的 以上两种统称为 调节原则 排除原则 排除自己的不想要的版本 版本锁定 谁能够提供锁定的版本,就用谁的 版本变量提取…
导入struts包,在struts核心包的ognl包下存在javassist包: 然后再导入hibernate包,在hibernate核心下也存在javassist包: 这样便会存在冲突,ecplise没有办法区分去调用哪个版本的包,所以我们应该去解决包之间的冲突. 解决方案: 1.通过<excludions>标签解决 我们如果想要使用较高版本的包,我们可以在低版本的包上右击,然后选择Exclude Maven Artifact.我们可以在pom.xml中看到: 这样便对低版本的jar包进行了…
在 Eclipse 中 Maven project 的默认 JDK 版本是 1.5, 如果不在 settings.xml 或者 pom.xml 中显示的指出 JDK 版本,每次 右键项目--> Maven --> Update project 的时候 JDK 的版本都会变为 1.5. 解决办法: 1. 针对某个 Maven 项目,可以直接在 pom.xml 中指明 JDK 版本 2. 在 settings.xml 中指定 JDK 版本,这样所有的 Maven 都指定了 JDK 版本, 重启 E…
请看解决方案: 1. 修改maven的settings.xml文件. 添加以下行,jdk版本改为自己需要的版本: <profile> <id>jdk-1.7</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.7</jdk> </activation> <properties> <maven.compil…
一.问题 项目开发过程中,经常会遇到jar冲突,然后maven根据自己的规则进行冲突解决,导致项目在运行的过程中报错. 1.maven自动解决依赖冲突的规则是什么? 2.如何查看当前项目的maven的依赖树? 3.如何从依赖树中找到自己预期的版本,是被那个jar给覆盖了? 4.如何人工进行依赖冲突解决,达到使用目的? 二.解决问题 1.maven自动解决依赖冲突的规则是什么? 第一原则:路径最近者优先 项目A有如下的依赖关系: A->B->C->X(1.0) A->D->X(…
此文已由作者翟曜授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 最近在测试过程中,遇到了几次maven传递依赖冲突的问题,所以记录下解决的过程,遇到类似问题供参照. 问题现象: 某服务不可用,查看启动log有报错信息,例如: java.lang.NoSuchMethodError,类名和方法名看起来,初步判断出是在某个依赖的jar包里. 排查步骤: 首先确认是哪个jar包.根据类名进行搜索,确认jar包为:netty.同时发现本地依赖的jar包版本都有多个,已经基本可断…
yum -y install  php-mysql 版本冲突 2018年09月02日 19:16:59 乐于技术分享 阅读数:640   [root@itop yum.repos.d]# yum -y install  php-mysql Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com  * extras: mirrors.…
maven 检查依赖冲突和版本冲突   在项目发布的时候,一般都需要进行依赖冲突检查或者重复类的检查,这个时候我一般会使用下面的两个命令:   1 2 3 mvn -U clean package -Dmaven.test.skip=true enforcer:enforce -DcheckDeployRelease_skip=true -Denforcer.skip=false   mvn -U dependency:tree -Dverbose   dependency: tree是检查版本…
传递依赖是maven最有特色的.最为方便的优点之一,可以省了很多配置.如a 依赖 b,b 依赖c 默认 a也会依赖 c.但是也会带来隐患,如版本冲突.当然maven也考虑到解决办法,可以使用exclusions来排除相应的重复依赖. 但是我们还会遇到一个严重的问题,那就是,我怎么知道是哪个包的传递依赖产生的冲突 ?那该怎么办呢?当然,maven也会有相应的解决方案. 首先,你要在pom.xml中加上maven-project-info-reports-plugin插件. <reporting>…
引入:http://blog.csdn.net/sanzhongguren/article/details/71191290 在spring reference中提到一个解决spring jar包之间版本冲突的解决方案,原文如下 It is possible to accidentally mix different versions of Spring JARs when using Maven. For example, you may find that a third-party lib…
通常情况下,我们都比较喜欢使用maven进行项目管理,要加个依赖包也非常简单,不需要到处去下载jar包,当然除了maven之外,也还有一些非常不错的工具.在使用maven进行项目依赖管理的时候,有时候会出现一种情况,多个不同的开源组件都依赖了另外一个组件,但是这个组件的版本却不一样,在maven依赖中就会看到两个版本不同的jar,通常我们可以根据实际情况排除其中一个,当然前提是这个版本没有太大的差异,兼容.老规矩,直接了当说怎么做吧: 1.手工添加配置:在dependency标签里使用子标签ex…
https://blog.csdn.net/sinat_39789638/article/details/78005945 共有四种解决方式: 1.第一声明优先原则: 在pom.xml配置文件中,如果有两个名称相同版本不同的依赖声明,那么先写的会生效. 所以,先声明自己要用的版本的jar包即可. 2.路径近者优先: 直接依赖优先于传递依赖,如果传递依赖的jar包版本冲突了,那么可以自己声明一个指定版本的依赖jar,即可解决冲突. 3.排出原则: 传递依赖冲突时,可以在不需要的jar的传递依赖中声…
新版API上线后,发现LOG文件没有正常输出.查看Tomcat的Log文件发现如下的错误信息 May , :: AM com.sun.xml.ws.server.sei.EndpointMethodHandler invoke SEVERE: Found class ch.qos.logback.core.spi.CyclicBufferTracker, but interface was expected java.lang.IncompatibleClassChangeError: Foun…
困扰了两天的问题,非常头疼,今天终于有了解决思路了,说到底,还是对maven不够了解吧.总是抱怨maven不好用,出现各种无厘头的问题,原来这些都是归于对它不够了解不够熟悉,它提供了很好的解决思路,只是我们通常都不知道. 问题背景: 配置jstl依赖惹的祸, <dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <ve…
施用 maven shade plugin 解决 jar 或类的多版本冲突   使用 maven shade plugin 解决 jar 或类的多版本冲突java 应用经常会碰到的依赖的三方库出现版本冲突,下面举一个具体的例子. Dubbo 是一个分布式的服务框架,其中的一种 rpc 实现(dubbo 协议)使用 hessian 3.2.0 来做序列化,另外一种实现(hsf协议)同样使用了 hesssian,但使用的版本是 3.0.14.如果现在一个应用中同时使用了 dubbo 协议和 hsf…
1.显示依赖关系mvn dependency:tree > tree.txt显示所有依赖关系,并输出到text.txtmvn dependency:tree -Dverbose > tree.txt显示指定包的依赖关系mvn dependency:tree -Dverbose -Dincludes=net.masterthought:maven-cucumber-reporting:jar:3.13.1mvn dependency:tree -Dverbose -Dincludes=org.s…
mvn/maven如何检查依赖冲突,并解决依赖冲突 如图,点击图示位置,就可以把整个项目的依赖关系展示出来 在图里选中一个artifact,则所有依赖该artifact的地方都会一起连带出来突出显示,如果有不同版本的也会标记出来.这样该artifact在该工程里是如何被直接或间接引入的进来也就明朗了. 也可以在项目的pom.xml文件里,右键调出显示依赖关系的快捷键 如果有冲突的版本,可以右击该版本的节点然后Exclude,对应的pom.xml就已经成功修改了.(IntelliJ IDEA对于文…
参考:官方文档 - Build System of Maven https://blog.didispace.com/books/spring-boot-reference/IX. 'How-to' guides/80.3 Customize dependency versions.html 对于 SpringBoot 使用 Maven 构建项目做依赖管理大致分下面两种情况,一种是以 spring-boot-starter-parent 作为父模块,属于默认的方式:另一种是不用 Parent P…
2018年: maven突然之间报错了,显示版本冲突,但是其他的机器是好的, 使用命令:mvn compile -P dev -e; 看看测试环境有没有问题,还是有问题.而且,刚开始只是报错:error,连错误原因都不提. 后来把原来的项目删掉,然后执行:mvn compile -P dev -e 开始出现错误的原因了,说是:com.sankuai.qcs 底下的某个包 引用冲突. 后来找到这个包的本地仓库的位置: /Users/yinfuqing/.m2/repository/com/sank…
今日思语:人生方方长长,努力把她磨成方圆,所以 加油咯~ 使用maven可以很方便的进行项目依赖的管理,即可以管理我们显示引入具体版本的依赖,也可以管理某些第三方引入的一些依赖的版本,从而能更好的实现摸一个依赖在整个项目中只存在唯一一个版本(使用dependencyManagement元素进行管理),示例效果如下: 没统一管理前: A模块: B模块: 父级pom统一管理后,即使用dependencyManagement元素进行管理 统一管理后各子模块的对应依赖版本 A模块: B模块: 这里就是对…
女朋友他们项目用了 spring-boot,以 spring-boot-parent 作为 parent: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.9</version> </parent> 女朋友最近想用 elast…
1查询官网地址,提供了详细的各个版本的jar依赖版本信息 https://www.cloudera.com/documentation/enterprise/release-notes/topics/cdh_vd_cdh5_maven_repo_516x.html…
Maven 坐标与依赖 Maven 的一大功能是管理项目依赖.为了能自动化地解析任何一个 Java 构件, Maven 就必须将它们唯一标识,这就依赖管理的底层基础 一一 坐标.本章将详细分析 Maven 坐标的作用,解释其每一个元素:在此基础上,再介绍如何配置 Maven,以及相关的经验和技巧,以帮助我们管理项目依赖. 1. 坐标详解 Maven 坐标为各种构件引人了秩序,任何一个构件都必须明确定义自己的坐标,而组 Maven 坐标是通过一些元素定义的,它们是 grouped. artifac…
Github地址:https://github.com/zwjlpeng/Maven_Detail Maven最大的好处莫过于其强大的依赖管理系统,在Pom配置文件中指定项目需要的Jar包的坐标,Maven就可以自动帮我们从中央仓库或者自已的私服下载,当项目中由于依赖的传递性,引入了两份相同的Jar包时,Maven也会根据自已的规则如路径最短,先声明者优先对相同Jar包进行取舍,达到项目类路径中只保留一份Jar包的目的,我们不排队一些粗心的程序员,在同一份Pom配置文件中对相同Jar写了两份不同…
    开发任何软件,如何管理依赖是一道绕不过去的坎,软件开发过程中,我们往往会使用这样那样的第三方库,这个时候,一个好的依赖管理就显得尤为重要了.作为一个自动构建工作,Gradle对依赖管理有着很好的支持.     通常我们使用IDE(Eclipse.IDEA.Android Studio)开发Java项目,IDE自动为我们创建了Gradle文件,添加依赖也不过简单的几行代码,这篇随笔将从逐步解释Gradle的依赖管理方法,希望对大家有所帮助.     如有错误,请不吝指出,非常感谢!如果本文…