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

ByteBuddy Gradle插件1.11.18指定plugin class报错如何解决?

ByteBuddy 1.11.18版本自定义插件配置方案

两个报错的核心逻辑如下:

  • 第一个类转换异常是因为新版本不再支持字符串格式的插件配置,必须传入Class对象
  • 第二个unknown property 'com'报错是因为Gradle构建脚本的类路径中未加载自定义插件类,无法识别com.test.PluginImpl的类定义

正确配置步骤

步骤1:独立编译自定义插件类

自定义ByteBuddy插件的代码不能放在主项目源码目录中,主项目编译晚于ByteBuddy转换流程,会产生循环依赖。需要将插件代码放入优先编译的buildSrc模块:

  1. 在项目根目录新建buildSrc/src/main/java/com/test/路径,将PluginImpl.java放入该路径
  2. 新建buildSrc/build.gradle,添加如下配置:
plugins {
    id 'java'
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'net.bytebuddy:byte-buddy-gradle-plugin:1.11.18'
}

buildSrc模块会在Gradle构建启动时优先编译,模块内的类会自动加入构建脚本的类路径,可被配置直接识别。

步骤2:调整主项目ByteBuddy配置

主项目的build.gradle中按如下方式配置即可:

byteBuddy {
    transformation {
        plugin = com.test.PluginImpl
    }
}

替代方案(无需buildSrc)

如果不想单独维护buildSrc模块,也可以通过构建脚本类加载器动态加载插件类,配置如下:

byteBuddy {
    transformation {
        plugin = Class.forName("com.test.PluginImpl", true, buildscript.classLoader)
    }
}

注意该方案仍需要保证com.test.PluginImpl类已经被提前编译并加入构建脚本的类路径中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:54:00