You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle构建Jenkins插件时Guava依赖变体选择错误修复咨询

解决Jenkins插件项目中Guava依赖变体选择错误的问题

这个错误是因为Gradle无法自动确定要使用Guava的JRE还是Android变体——Jenkins插件是纯Java项目,应该绑定JRE变体,但依赖解析时没明确指定导致的。固定版本没用是因为问题核心不是版本冲突,而是变体选择逻辑,试试下面几种方案:

  • 强制指定JRE变体属性
    在build.gradle中通过属性约束明确要求Gradle选择Guava的JRE变体:

    dependencies {
        constraints {
            implementation('com.google.guava:guava') {
                attributes {
                    attribute(TargetJvmEnvironment.TARGET_JVM_ENVIRONMENT_ATTRIBUTE, 
                              objects.named(TargetJvmEnvironment, TargetJvmEnvironment.JRE))
                }
            }
        }
    }
    

    或者全局配置所有Guava依赖都用JRE变体:

    configurations.all {
        attributes {
            attribute(TargetJvmEnvironment.TARGET_JVM_ENVIRONMENT_ATTRIBUTE, 
                      objects.named(TargetJvmEnvironment, TargetJvmEnvironment.JRE))
        }
    }
    
  • 配置变体过滤规则
    直接过滤掉Android相关的Guava变体,只保留JRE相关的:

    dependencies {
        components {
            withModule('com.google.guava:guava') {
                allVariants {
                    if (variant.name.contains('android')) {
                        skip()
                    }
                }
            }
        }
    }
    
  • 检查Jenkins插件Gradle插件版本
    确保你使用的io.jenkins.plugin插件版本是较新的,旧版本可能对现代Gradle的变体解析支持不足。比如更新到稳定版本:

    plugins {
        id 'io.jenkins.plugin' version '0.82.0'
    }
    
  • 排除传递引入的Android版Guava
    如果是某个第三方依赖间接引入了Android变体的Guava,直接在依赖声明中排除:

    dependencies {
        implementation('your.problem.dependency:xxx:1.0') {
            exclude group: 'com.google.guava', module: 'guava'
        }
    }
    

执行完配置修改后,先运行gradle clean再重新执行gradle compileGroovy,应该就能解决变体选择的问题。

内容的提问来源于stack exchange,提问作者user51

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 09:35:54