首页 > 解决方案 > 在 Gradle 发布的元数据中表达从 Java 11 中删除的模块的依赖关系

问题描述

我有一个使用 JAXB 的库,该库已从 Java 11 中删除。我的库必须与 Java 8 和 Java 11 兼容。构建和测试库很容易,因为如果 Java 11 运行时是,我添加以下依赖项在构建期间检测到:

implementation "com.sun.xml.bind:jaxb-impl:2.3.3"

但是,我的目标是发布具有两种变体的元数据,一种具有属性 org.gradle.jvm.version 设置为 8 且没有 JAXB 依赖项,另一种具有属性 org.gradle.jvm.version 设置为 11 和 JAXB 依赖项。我还希望这对消费者是透明的,即它的依赖声明仍然存在

implementation "foo:bar:1.0.0"

当前版本的 Gradle 可以做到这一点吗?通过声明默认功能的变体?

标签: javagradlejava-11

解决方案


推荐阅读