Maven的Pom文件中的隐式依赖导致Jar包冲突的问题

在一次的maven项目中遇到这样一个bug:

编译器没有报什么错,但无法编译,或者能编译,项目启动不了。后来我才发现是以下的问题:

项目中的pom文件中,依赖了webx3.core,而webx3.core又隐式依赖了fasttext相关的jar包,同时我在pom中也引人了fasttext.all,

fasttext.all也隐式依赖了fasttext相关的jar包,两类jar包版本还不一样,这样就导致了jar包冲突的问题,牵扯到的pom文件依赖如下:

<dependency>
<groupId>com.alibaba.platform.shared</groupId>
<artifactId>webx3.core</artifactId>
</dependency>

<dependency>
<groupId>com.alibaba.platform.shared</groupId>
<artifactId>fasttext.all</artifactId>
</dependency>

那怎么查看这种jar包冲突问题呢?

eclipse提供了对隐式依赖jar包的查看功能:在eclipse中打开一个pom文件,在Dependency
Hierarchy的Tab页中,就可以查看当前pom文件中显示声明的jar包,及这些显示声明的jar中隐式引入的依赖jar包,我在这里搜索fasttext,就可以清楚的看到了,一个依赖了1.3.5版本的,一个依赖了1.3-SNAPSHOT版本的。

发现了问题就简单了,只要通过排除webx3.core中的fasttext的依赖,就解决了上述冲突的问题:

<dependency>
<groupId>com.alibaba.platform.shared</groupId>
<artifactId>webx3.core</artifactId>
<exclusions>
<exclusion>
<artifactId>jakarta.commons.codec</artifactId>
<groupId>com.alibaba.external</groupId>
</exclusion>
<exclusion>
<groupId>com.alibaba.platform.shared</groupId>
<artifactId>fasttext-css</artifactId>
</exclusion>
<exclusion>
<groupId>com.alibaba.platform.shared</groupId>
<artifactId>fasttext-psoriasis</artifactId>
</exclusion>
<exclusion>
<groupId>com.alibaba.platform.shared</groupId>
<artifactId>fasttext-sec</artifactId>
</exclusion>
<exclusion>
<groupId>com.alibaba.platform.shared</groupId>
<artifactId>fasttext-segment</artifactId>
</exclusion>
</exclusions>
</dependency>

对应排除,改bug是个挺实用的方法。

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net

原文地址:https://www.cnblogs.com/swnchx/p/10141561.html

时间: 2025-01-13 07:09:48

Maven的Pom文件中的隐式依赖导致Jar包冲突的问题的相关文章

正确配置jstl的maven依赖,jar包冲突的问题终于解决啦

困扰了两天的问题,非常头疼,今天终于有了解决思路了,说到底,还是对maven不够了解吧.总是抱怨maven不好用,出现各种无厘头的问题,原来这些都是归于对它不够了解不够熟悉,它提供了很好的解决思路,只是我们通常都不知道. 问题背景: 配置jstl依赖惹的祸, <dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <ve

Idea中maven项目pom文件中已引入testng但项目文件中无法引入@Test

问题: 1.Idea中maven项目的pom.xml文件中引入依赖testng 2.此时可以看到已经出现testng的jar包,ERPLogin.java中引用@Test发现无法引用,然后直接import org.testng.annotations.Test也无法显示 3.但是在test目录下能引用到testng 原因: 在pom.xml文件引用testng的时候,有个标签<scope>test</scope>限制了只能在test目录下使用 1 <dependency>

maven的pom文件中指定编译的版本

<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <enc

maven 搜索不到想从本地仓库依赖的jar包--重建本地maven仓库索引

问题:有时候本地仓库有相关的jar包,但是在pom.xml中利用工具搜索不到 菜单栏设置显示Maven Respositorise视图:Windows--Show View--Other..   (对话框)Maven--Maven Respositorise 视图出现 选择Local Respositorises-->Local Respository 鼠标右键 Rebuild Index(重建索引) over...

aven依赖分析,jar包冲突解决利器intellij idea插件Maven Helper强烈建议安装

还在为解决jar包依赖冲突痛苦??? 那就好好看看下面的文章吧! 目前大多公司的java项目都以Maven项目为主,最近也通过Maven Helper解决了一些生产问题,在这里分享一下安装和基本使用方法! 安装方法: File-Settings-Plugins 点击“Browse repositories” 在弹出搜索框输入"maven helper" 点击“Install”,安装完成后重启idea 基本使用: idea启动后,打开要分析的pom.xml,在编辑器的左下方会看到多出一行

(转)如何在maven的pom.xml中添加本地jar包

1 maven本地仓库认识 maven本地仓库中的jar目录一般分为三层:图中的1 2 3分别如下所示: 1 groupId 2 artifactId 3 version 4 jar包的依赖 如果要将maven本地仓库中的jar包添加到项目中,直接打开4 xx.pom文件,将改jar包的相关依赖复制pom.xml文件中即可. 2 将本地jar包添加到本地仓库 2.1 添加jar到本地仓库 原则上Maven的设计是不需要这么做的,因为pom.xml中依赖的jar包会自动实现从中央仓库下载到本地仓库

Maven学习(3)-依赖管理-POM文件中依赖的范围定义

来源: https://www.cnblogs.com/best/p/9676515.html#_lab2_1_2 https://www.cnblogs.com/kabi/p/8509049.html POM文件中的依赖可以通过<scope>标签定义依赖范围: <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.1

Maven 的 pom 文件、生命周期

1. pom 文件 pom 代表项目对象模型,它是 Maven 中工作的基本组成单位.它是一个 XML 文件,始终保存在项目的基本目录中的 pom.xml 文件中.pom 包含的对象是使用 Maven 来构建的,pom.xml 文件包含了项目的各种配置信息,需要特别注意,每个项目都只有一个 pom.xml 文件. pom 文件中有一些节点用来描述项目配置信息,比如: 1)project:工程的根标签 2)modelVersion:pom 模型版本,maven2和3只能为4.0.0 3)group

Maven管理SSM框架的pom.xml文件配置(自动下载所依赖的jar包)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion&