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

自定义Gradle插件Jar分发:传递依赖类路径配置问题

嘿,针对你想不用本地或远程Maven仓库,直接分发带传递依赖的Gradle插件,还不用手动处理依赖的需求,我整理了几个实用的方案,你可以根据场景选择:

方案1:构建包含所有依赖的Fat Jar(Shadow Jar)

这是最直接的方案——把你的插件本身和所有传递依赖打包到一个单独的jar文件里,分发时只需要传这一个文件,对方引用后自动获取所有依赖,完全不用手动处理。

实现起来也很简单,借助Gradle的Shadow插件就行:

  1. 在你的插件项目的build.gradle中引入Shadow插件:
plugins {
    id 'java-gradle-plugin'
    id 'com.github.johnrengelman.shadow' version '7.1.2'
}
  1. 配置Shadow Jar的输出(可选,比如给jar加个-all标识区分普通jar):
shadowJar {
    archiveClassifier.set('all')
    // 如果有重复依赖或者不需要的依赖,可以在这里排除,比如:
    // exclude 'org/some/unwanted/dependency/**'
}
  1. 让插件的发布任务关联Shadow Jar,确保构建时生成包含所有依赖的包:
gradlePlugin {
    plugins {
        myCustomPlugin {
            id = 'com.yourcompany.myplugin'
            implementationClass = 'com.yourcompany.MyPlugin'
        }
    }
}

构建完成后,你会在build/libs目录下得到一个[插件名]-[版本]-all.jar的文件,把这个文件分发给其他项目就行。对方只需要在项目里通过flatDir或者直接引用文件的方式添加依赖:

buildscript {
    repositories {
        flatDir { dirs '/path/to/plugin-jar-dir' }
    }
    dependencies {
        classpath 'com.yourcompany:myplugin:1.0.0:all'
    }
}

apply plugin: 'com.yourcompany.myplugin'
方案2:利用Gradle的复合构建(Composite Builds)

如果是团队内部协作,不想打包分发jar,直接让消费项目关联你的插件源码项目是更高效的方式——Gradle会自动把两个项目当作一个整体构建,自动处理所有传递依赖,而且插件代码修改后,消费项目能实时同步更新。

操作步骤:

  1. 你的插件项目保持原样,不需要额外打包
  2. 在消费项目的settings.gradle中添加对插件项目的引用:
includeBuild '../path/to/your/plugin-project'
  1. 然后在消费项目的build.gradle里正常引用你的插件ID就行:
plugins {
    id 'com.yourcompany.myplugin'
}

这种方式完全不需要分发任何文件,适合团队内部频繁迭代插件的场景。

方案3:分发插件Jar + 自动生成的POM文件

如果你不想打Fat Jar(比如担心jar体积过大),可以直接用你已经生成的普通插件Jar和POM文件一起分发——POM文件里已经包含了所有传递依赖的声明,对方只需要把这两个文件放在同一个目录,然后让Gradle读取这个目录作为本地Maven仓库即可。

对方项目的配置示例:

buildscript {
    repositories {
        maven {
            url = file('/path/to/dir-containing-jar-and-pom')
        }
    }
    dependencies {
        classpath 'com.yourcompany:myplugin:1.0.0'
    }
}

apply plugin: 'com.yourcompany.myplugin'

Gradle会自动读取POM文件里的依赖信息,把所有传递依赖添加到类路径中,完全不用手动处理。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:51:57