运行column-profiling conclave时:enclave:compileJava任务依赖判定失败
报错原因
该错误属于Gradle多模块构建的依赖变体匹配失败,核心冲突为:
:enclave模块编译时要求依赖库兼容Java 8,但被依赖的:common模块仅提供了Java 14兼容的构建产物,没有符合要求的变体可供选择。
排查步骤
- 依次查看根目录、
common模块、enclave模块下的build.gradle(或build.gradle.kts)文件,定位Java版本相关配置项,重点核对sourceCompatibility、targetCompatibility、compileJava.options.release三个参数的取值 - 核对本地安装的JDK版本是否支持你想要设置的目标Java版本
解决方案
提供两种可行处理方案,按需选择即可:
方案1:统一所有模块的目标兼容版本为Java 8
修改common模块的构建配置,将其编译目标版本调整为8,Groovy DSL配置示例如下:
java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } tasks.withType(JavaCompile) { options.release = 8 }
修改完成后重新执行构建命令即可解决冲突。
方案2:调整enclave模块的兼容要求到Java 14
如果common模块必须使用Java 14的语法特性,可同步修改enclave模块的构建配置,将其Java兼容版本升级为14,注意操作前需要确认Conclave Enclave运行环境支持Java 14字节码。
内容的提问来源于stack exchange,提问作者Ganesh
相关产品推荐
相关产品推荐

