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

Gradle自定义插件跨项目复用 找不到依赖插件的问题咨询

问题根因

你在自定义插件的apply方法中动态添加buildscript classpath的时机太晚了,Gradle 解析插件ID的阶段早于自定义插件的执行时机,等你把Spring Boot插件依赖加入classpath的时候,插件查找流程已经结束,自然会报找不到对应插件的错误。

可行解决方案

你不需要在目标项目加任何配置,只要调整你的自定义插件配置即可,步骤如下:

  1. 将Spring Boot插件、依赖管理插件作为你自定义插件的自身依赖声明,这些依赖会跟随你的自定义插件一起被加载到构建classpath中,目标项目不需要额外感知
    修改你的插件项目build.gradle,新增dependencies配置块:
dependencies {
    implementation 'org.springframework.boot:spring-boot-gradle-plugin:2.4.10'
    implementation 'io.spring.dependency-management:io.spring.dependency-management.gradle.plugin:1.0.11.RELEASE'
}
  1. 删掉DependencyManagementPlugin.java中往project.getBuildscript()添加classpath的两行代码,剩余apply插件的逻辑保留即可:
public class DependencyManagementPlugin implements Plugin<Project> {

  @Override
  public void apply(Project project) {
    PluginContainer plugins = project.getPlugins();
    plugins.apply(MavenPublishPlugin.class);
    plugins.apply(JavaPlugin.class);
    plugins.apply(JacocoPlugin.class);
    plugins.apply("org.springframework.boot");
    plugins.apply("io.spring.dependency-management");
  }
}
  1. 重新打包发布你的自定义插件,原有引用插件的业务项目不需要做任何修改,就能正常加载所有需要的插件。

该方案完全满足你统一管理依赖版本的需求,后续版本迭代只需要修改插件项目内的依赖版本重新发布即可,不需要修改所有业务项目的配置。

内容的提问来源于stack exchange,提问作者Sam Jing Wen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:57:01