在Gradle发布的元数据中表示从Java11删除的模块的依赖关系

在Gradle发布的元数据中表示从Java11删除的模块的依赖关系,java,gradle,java-11,Java,Gradle,Java 11,我有一个使用JAXB的库,它已从Java11中删除。我的库必须与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.vers

我有一个使用JAXB的库,它已从Java11中删除。我的库必须与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中可能吗?通过声明默认功能的一个变体?

我建议您自己进行交叉引用:您是否想出了什么办法?我面临着完全相同的问题,我在这里和gradle论坛上都尝试过,但我找不到答案。@johny.bravo不幸的是,没有。此后我没有时间进行进一步的实验,但这看起来像是一个越来越普遍的用例。