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

如何配置由KVision间接引入的Gradle ShadowJar插件任务?

KVision间接引入ShadowJar后的配置方案

推荐方案:通过任务名称定位配置

由于KVision已经间接引入ShadowJar插件,无需手动添加插件依赖,直接通过任务名称即可完成配置:

tasks.named("shadowJar") {
    // 针对Flyway问题的配置示例(根据Issue #3482需求调整)
    manifest {
        attributes["Main-Class"] = "你的应用主类全限定名"
    }
    // 确保Flyway迁移脚本被正确打包
    from(sourceSets.main.get().resources.srcDirs) {
        include("db/migration/**")
    }
    // 按需排除或包含依赖
    dependencies {
        include(dependency("org.flywaydb:flyway-core"))
    }
}

进阶方案:显式导入任务类型

如果需要对所有ShadowJar任务做全局配置,或创建自定义ShadowJar任务,可显式导入任务类:

import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar

// 全局配置所有ShadowJar任务
tasks.withType(ShadowJar::class) {
    // 统一添加Flyway相关配置
}

// 注册自定义ShadowJar任务
tasks.register<ShadowJar>("flywayShadowJar") {
    // 自定义打包逻辑,比如仅包含Flyway相关资源
}

排查方案:显式声明插件ID

若上述方法无效,可在plugins块中显式声明ShadowJar插件(与KVision的间接依赖不会冲突,反而能确保任务类型被正确识别):

plugins {
    id("com.github.johnrengelman.shadow") version "7.1.2" // 使用与KVision兼容的版本
    // 保留原有的KVision、KTor插件声明
}

核心要点

  • 无需重复添加插件classpath依赖,KVision已间接引入,显式声明插件ID仅用于确保Gradle识别任务类型。
  • Flyway相关的具体配置(如迁移脚本路径、依赖过滤)需结合Issue #3482的实际需求调整from、include、exclude等参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:05:00