首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Maven依赖项对okhttp3 mockwebserver的错误版本

Maven依赖项对okhttp3 mockwebserver的错误版本
EN

Stack Overflow用户
提问于 2022-04-07 14:36:57
回答 2查看 1.1K关注 0票数 2

我试图在我的Spring引导项目中使用okhttp3.mockwebserver,我发现包含了okhttp3 3:mockwebserver:jar:3.14.9,而不是4.9.1。

我创建了一些小的“模拟”项目来复制我在我的产品中的问题。

这个项目在这里,https://github.com/mkarasik/okhttp-test

它包含两个文件夹:

这是一个简单的库,包括mockwebserver作为依赖项。

pom.xml依赖

代码语言:javascript
运行
复制
    <dependencies>
    ...
    <dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>mockwebserver</artifactId>
        <version>4.9.1</version>
        <exclusions>
            <exclusion>
                <artifactId>junit</artifactId>
                <groupId>junit</groupId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

Maven依赖树

代码语言:javascript
运行
复制
 \- com.squareup.okhttp3:mockwebserver:jar:4.9.1:compile
    +- com.squareup.okhttp3:okhttp:jar:3.14.9:compile

这已经是错误的了。Mockwebserver包含4.9.1 okhttp伪影,但3.14.9显示在树中。

项目

简单的Spring应用程序,包括lib项目

代码语言:javascript
运行
复制
    <dependency>
        <groupId>com.example</groupId>
        <artifactId>lib</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <scope>test</scope>
    </dependency>

Maven依赖树

代码语言:javascript
运行
复制
\- com.example:lib:jar:0.0.1-SNAPSHOT:test
   \- com.squareup.okhttp3:mockwebserver:jar:3.14.9:test
      \- com.squareup.okhttp3:okhttp:jar:3.14.9:test
         \- com.squareup.okio:okio:jar:1.17.2:test

同样的问题也在这里。包含了okhttp3 3:mockwebserver:jar:3.14.9,而不是在我的lib pom.xml中指定的4.9.1。

在我的xml配置中有遗漏什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-07 19:12:42

Introducing dependencies in other projects causes Maven to downgrade okhttp3 version中有描述

代码语言:javascript
运行
复制
<properties>
    <okhttp3.version>4.9.1</okhttp3.version>
</properties>

解决问题

票数 0
EN

Stack Overflow用户

发布于 2022-04-11 07:27:52

OkHttp提供了一个Maven BOM,您可以使用它来确保一致的版本

https://github.com/square/okhttp#releases

还提供了一份材料清单(BOM),以帮助您保持OkHttp工件的最新更新,并确保版本兼容性。

这个例子是gradle,但它最初是maven的一个特性。

https://docs.gradle.org/6.2/userguide/platforms.html#sub:bom_import

代码语言:javascript
运行
复制
dependencies {
   // define a BOM and its version
   implementation(platform("com.squareup.okhttp3:okhttp-bom:4.9.3"))

   // define any required OkHttp artifacts without version
   implementation("com.squareup.okhttp3:okhttp")
   implementation("com.squareup.okhttp3:logging-interceptor")
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71784140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档