【问题标题】:Why does google-api-client depend on guava-jdk5?为什么 google-api-client 依赖 guava-jdk5?
【发布时间】:2018-04-17 23:35:40
【问题描述】:

我的 Maven 依赖项中依赖 Guava:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>23.3-jre</version>
</dependency>

我的依赖项中也有对 Google API 客户端的依赖项:

<dependency>
    <groupId>com.google.api-client</groupId>
    <artifactId>google-api-client</artifactId>
    <version>1.23.0</version>
</dependency>

但由于某些奇怪的原因,它具有以下依赖性:

<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava-jdk5</artifactId>
</dependency>

现在我的 WAR 以两个 Guava JAR 结束:

  • guava-23.3-jre.jar
  • guava-jdk5-17.0.jar

这带来了几个问题,因为运行时更喜欢guava-jdk5-17.0.jar,而代码是使用guava-23.3-jre.jar 编译的。

为什么 Google API Client 依赖于 JDK5 的 Guava?有两个版本不是更有意义吗,比如:

  • google-api-client 依赖于常规 Guava,最好是 23.3 版(截至当前)
  • google-api-client-jdk5 依赖于 JDK5 的 Guava

【问题讨论】:

  • 欢迎来到依赖地狱 :)
  • 它和颠倒一样可怕。

标签: java maven google-api google-api-client google-api-java-client


【解决方案1】:

见https://github.com/google/google-api-java-client/issues/903。以下解决方法应该是可能的:

    <dependency>
        <groupId>com.google.api-client</groupId>
        <artifactId>google-api-client</artifactId>
        <exclusions>
            <exclusion>
                <groupId>com.google.guava</groupId>
                <artifactId>guava-jdk5</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    相关资源
    最近更新 更多