首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不兼容,因为该组件声明了一个与Java 17兼容的组件,并且使用者需要一个与Java 11兼容的组件

不兼容,因为该组件声明了一个与Java 17兼容的组件,并且使用者需要一个与Java 11兼容的组件
EN

Stack Overflow用户
提问于 2022-07-20 15:38:09
回答 1查看 344关注 0票数 1

我维护一个内部库,并将构建和发布JDK的JDK从11升级到17,同时还从6.8.1级升级到7.4.2级。

在某些现有项目中尝试使用库的新版本时,我会得到以下错误:

代码语言:javascript
复制
Incompatible because this component declares a component compatible with Java 17 and the consumer needed a component compatible with Java 11

这是非常不言自明的,但我不明白,因为在我的库中,我在我的gradle.build文件中定义了它:

代码语言:javascript
复制
sourceCompatibility = 11
targetCompatibility = 11   

因此,我希望我构建的jar与JDK 11兼容。但很明显这不是。

我错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-20 15:38:09

看起来,在最新的Gradle版本中,我们需要使用toolchain (而不是sourceCompatibility / targetCompatibility )来定义我们生成的jar的兼容性。

当我使用:

代码语言:javascript
复制
java {
  toolchain {
    languageVersion = JavaLanguageVersion.of(11)
  }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73054491

复制
相关文章

相似问题

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