首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JJWT依赖混淆

JJWT依赖混淆
EN

Stack Overflow用户
提问于 2020-08-10 19:18:17
回答 1查看 5.9K关注 0票数 6

我继承了一个在POM.xml中具有此功能的java项目:

代码语言:javascript
复制
<properties>
    <jjwt.version>0.11.1</jjwt.version>
</properties>

// from https://github.com/jwtk/jjwt#maven
<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt-api</artifactId>
    <version>${jjwt.version}</version>
</dependency>
<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt-impl</artifactId>
    <version>${jjwt.version}</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt-jackson</artifactId> <!-- or jjwt-gson if Gson is preferred -->
    <version>${jjwt.version}</version>
    <scope>runtime</scope>
</dependency>

// what is this "jjwt" dep, and why might it be using a different version?
<dependency>
    <groupId>io.jsonwebtoken</groupId>
    <artifactId>jjwt</artifactId>
    <version>0.9.1</version> 
</dependency>

这是什么"jjwt“dep,为什么它会使用不同的版本?

我在https://github.com/jwtk/jjwt没有看到任何关于这件事的提及

但它就在这里:https://mvnrepository.com/artifact/io.jsonwebtoken

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-10 19:39:03

在JJWT版本0.10.0之前,API和实现都打包为一个单独的工件,即io.jsonwebtoken:jjwt

从0.10.0版本开始,API和实现被分割到两个不同的工件中。

摘录自JJWT发行说明,版本0.10.0

JJWT的新模块化设计利用了编译和运行时依赖之间的区别,以确保您只依赖于应用程序中安全使用的公共API。所有内部/私有实现类都已移动到新的jjwt impl运行时依赖项。 如果您过去依赖于任何内部实现类,那么您有两个选择:

  • 重构您的代码以使用jjwt-api .jar中的公共API类和接口。您可能在内部实现中使用的任何功能都应该可以通过该.jar中更新的干净接口和助手类获得。
  • 将新的jjwt impl .jar指定为编译依赖项,而不是运行时依赖项。这将使您的升级到JJWT 0.10.0完全向后兼容,但您这样做是有风险的。JJWT将在jjwt-impl .jar中不提供语义版本兼容性保证。然而,语义版本控制将在所有其他JJWT依赖项中得到非常小心的遵守。

我猜您的项目团队只是没有完成从JJWT <= 0.9到JJWT >= 0.10的升级。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63346655

复制
相关文章

相似问题

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