MaxCompute JDBC 包冲突

问题描述

在引入JDBC包(odps-jdbc)时,<classifier>jar-with-dependencies</classifier>中打入的guava binary code,与springfox-swagger2中使用的guava版本存在冲突,但无法通过固定版本或排除的方式处理掉,导致引入JDBC包存在异常。

建议类似情况不要使用<classifier>jar-with-dependencies</classifier>方式打包。

期望结果

<classifier>jar-with-dependencies</classifier>换种方式把。

已尝试的方法

1、使用odps-jdbc源码将guava版本固定后,重新打包引入,可以使用。

2、使用sdk,sdk可以exclude掉。

展开
收起
游客7dfouzcrakpgc 2023-03-22 15:48:28 259 分享 版权
1 条回答
写回答
取消 提交回答
  • 全栈JAVA领域创作者

    感谢您分享关于使用JDBC包时出现的冲突问题。的确,当我们引入多个依赖的时候,可能会出现不同依赖使用相同库但版本不同的情况,从而导致冲突或者其他异常。

    针对您提到的使用<classifier>jar-with-dependencies</classifier>方式打包时存在的问题,我建议可以尝试以下两种替代方法:

    1. 自行将需要的依赖和其所有的传递依赖都手动下载并打包成一个新的 JAR 包,以避免产生冲突。这种方法比较繁琐,需要手动管理依赖,但可以保证依赖版本的一致性。
    2. 使用 Maven Shade Plugin 插件,该插件可以将项目中的所有依赖(包括传递依赖)打包进一个新的 JAR 文件中,但它会对重复的类进行合并,避免出现冲突问题。使用方法可以参考 https://maven.apache.org/plugins/maven-shade-plugin/usage.html。

    无论是哪种方法,都需要注意排除掉不必要的依赖,以减少打包后的 JAR 文件大小。希望这些信息能够对您有所帮助。

    2023-03-23 00:29:20
    赞同 展开评论

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

还有其他疑问?
咨询AI助理