`
zlele
  • 浏览: 37449 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

jar包冲突 maven

阅读更多

近期在开发一个maven项目的时候,遇到了这样的报错:

java.lang.NoClassDefFoundError: com/google/common/base/MoreObjects

NoClassDefFoundError解决的三种办法(参考:https://my.oschina.net/jasonultimate/blog/166932):

1.首先是类在运行的时候依赖于其它的一个jar包,但是该jar包没有加载到classpath中或者是该jar包的名字被其他人改了,就像我的一个例子tibo.jar改为了tibco_v3.jar…….

2.运行的类不在classpath中,这个问题没有一个确定的方法去知道,但是很多时候你可以通过System.getproperty(”java.classpath“)方法,该方法能让你至少可以领略到实际存在的运行期间的classpath。

3.试着通过-classpath命令明确指出你认为正确的classpath,如果能够正常执行的话就说明你使用的classpath是正确的,而系统中的classpath已经被修该过了

 这里只详细讲第一种情况。

遇到NoClassDefFoundError报错后,查看项目中是否有MoreObjects这个类,如果没有,pom文件中加入缺少的依赖。如果有,进入该类,查看它所在的jar包是否存在冲突(比如不同版本的同种jar包),发现冲突后,进入对应的pom文件,然后如图



 显示依赖关系

 根据这个依赖关系,可以找出jar包被谁依赖,逐步解决冲突。

我的项目中需要依赖guava19.0但是之前的许多相关联的项目中都间接依赖了guava14.0,如果14依赖的少,可以逐个exclude,但是依赖过多就不行了。

可以在根pom中写明,这样就会优先选择你指定的版本了

 

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>19.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <version>3.0.0</version>
        </dependency>
    </dependencies>
</dependencyManagement>

祝好运。

  • 大小: 70.8 KB
  • 大小: 37.7 KB
  • 大小: 15.4 KB
分享到:
评论

相关推荐

    JSONObject相关jar包和maven管理jar包

    标题"JSONObject相关jar包和maven管理jar包"暗示了我们讨论的主题集中在JSONObject类库的使用上,特别是如何在Java项目中通过jar包和Maven构建工具来管理和利用这个类库。JSONObject是Java编程语言中用于处理JSON...

    maven批量导入第三方jar包至本地库工具

    在Java开发中,Maven是一个广泛使用的构建工具,它依赖于中央仓库中的各种jar包来构建项目。然而,有时候我们可能需要使用一些不在中央仓库中的第三方库,这就需要我们将这些jar包手动导入到Maven的本地库。"maven...

    maven集成jetty所需jar包maven-jetty-plugin,多版本

    - 使用旧版本的`maven-jetty-plugin`可能会导致某些新特性无法使用或与其他库冲突,因此保持插件更新是很重要的。 6. 结论: `maven-jetty-plugin`简化了Java Web应用的开发和测试过程,通过Maven的命令行即可...

    Maven搭建Kafka Java开发环境需要的jar包

    手动将jar包解压到特定目录可能会导致版本冲突或管理混乱。正确的方式是通过`pom.xml`文件中的依赖配置,让Maven自动处理。 关于标签"Kafka",Kafka是一个高性能、可扩展的开源消息系统,它支持发布订阅模型和生产...

    jar包冲突检测工具

    - **排除冲突的jar**:根据冲突报告,可以从项目中移除不必要的jar包,或者使用Maven或Gradle的exclusions来排除冲突的依赖。 - **使用类加载器策略**:例如,使用自定义类加载器来控制类的加载顺序,避免冲突。 - *...

    手动导jar包到Maven本地仓库的教程

    4. **版本一致性**:确保导入的jar包版本与项目需求一致,避免出现版本冲突的问题。 5. **重复导入**:如果同一个jar包已经存在本地仓库中,再次执行导入操作时,Maven不会重复导入,而是直接使用已存在的版本。 ##...

    检测工具 jar包冲突

    在Java开发过程中,"jar包冲突"是一个常见的问题,它主要出现在项目中引用了多个库,而这些库可能包含了相同类的不同版本。这种情况可能导致运行时错误或者程序行为不一致,因为JVM在加载类时可能会遇到混淆。"检测...

    maven冲突jar包清理脚本

    setting处理了,也将jar包的版本号都试了一遍,还是没解决,后来请教大牛,原来是没连网,maven工程加载了一部分jar包,连网之后自动下载的jar包跟之前的冲突,用这个脚本放在Maven仓库的目录,直接打开,可以将之前...

    osgi解决不同版本jar包冲突的demo

    OSGi(Open Services Gateway Initiative)是一种模块化系统和Java服务框架,它允许在单个JVM上运行多个版本的相同库或服务,从而解决了不同版本jar包冲突的问题。本示例通过一个名为“myself”的工程,展示了如何...

    检查jar包冲突

    - **使用 shade plugin**:Maven的Shade Plugin可以重打包`jar`,合并并解决冲突,也可以使用`relocation`策略将冲突的包名改变。 - **类加载器策略**:某些应用服务器允许配置类加载器策略,例如优先加载某个`jar...

    非maven项目集成minIO所需要的jar包

    标题和描述提到了在非Maven项目中集成MinIO时可能会遇到的jar包冲突问题。 以下是你提供的压缩包中的jar文件及其在MinIO集成中的作用: 1. **guava-28.1-jre.jar**:Google的Guava库提供了一系列实用工具类,如...

    springBoot非maven项目所需jar包

    电脑暂时没有装maven,最近突发奇想,向在搭建一个spring boot非maven项目,折腾了两个小时,下载jar包冲突问题居多,最后结合网上博客,整理了一份spring boot所需的jar包,亲测没有问题

    maven安装jar包工具

    对于团队开发而言,这种工具可以确保所有开发者使用同一版本的jar包,避免了版本冲突的问题。 了解了基本的安装流程后,我们深入探讨一下Maven仓库的结构。Maven仓库分为本地仓库和远程仓库。本地仓库是Maven默认的...

    SSH整合jar包,彻底解决集成jar包冲突问题

    2. **排除冲突**:在Maven的pom.xml或Gradle的build.gradle文件中,使用`exclusions`或`exclude`规则,明确排除导致冲突的jar包。 3. **版本统一**:尽量让所有框架使用相同版本的公共库,避免版本差异带来的问题。...

    weblogic部署项目jar冲突解决

    标题"weblogic部署项目jar冲突解决"指出的核心问题是JAR包冲突。这是因为不同的应用服务器可能内置了不同版本的库,或者在类加载机制上有差异,导致原本在Tomcat上运行良好的应用在WebLogic上出现问题。以下是一些...

    taobao Diamond 部分maven jar包

    **淘宝Diamond Maven Jar包详解** 淘宝Diamond是一款由阿里巴巴开源的分布式配置中心,它主要用于解决大规模分布式系统中的配置管理问题。在大型互联网企业中,随着系统的复杂度增加,配置的管理和更新变得越来越...

    maven的本地仓库jar包

    Maven的本地仓库是Maven系统的核心组件之一,它存储着项目所需的各类依赖库,包括JAR包。当你在开发过程中引用了一个库,Maven会尝试从中央仓库下载该库到本地仓库,以便后续的编译和构建步骤能够访问到。 本地仓库...

    maven-JAR包

    POM 还定义了项目依赖关系,Maven 会根据这些依赖关系自动下载所需的 JAR 包,并管理它们之间的版本冲突。 **依赖管理** 在 Maven 中,项目依赖是通过 POM 文件中的 `&lt;dependencies&gt;` 标签来声明的。每个依赖都由...

Global site tag (gtag.js) - Google Analytics