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

能否修改Apollo Kotlin的默认Schema目录路径?

Apollo Kotlin 读取外部位置/独立仓库Schema的方案

当然可以,Apollo Kotlin完全支持从默认路径以外的位置读取Schema,下面是几种实用方案,帮你避免Schema重复:

1. 配置自定义本地Schema路径

你可以直接在Gradle配置里指定任意本地路径,不管是项目内其他目录,还是本地克隆的独立Schema仓库路径。

Kotlin DSL (build.gradle.kts) 示例:

apollo {
    service("myService") {
        // 指向本地克隆的MyGraphQLSchema仓库中的Schema文件
        schemaFile.set(file("../MyGraphQLSchema/schema.graphqls"))
    }
}

Groovy DSL (build.gradle) 示例:

apollo {
    service('myService') {
        schemaFile = file('../MyGraphQLSchema/schema.graphqls')
    }
}

2. 通过Git子模块集成独立Schema仓库

如果想让团队成员同步Schema更方便,可以把MyGraphQLSchema作为Git子模块添加到当前项目:

  • 执行命令添加子模块:git submodule add https://your-git-repo/MyGraphQLSchema.git
  • 之后在Gradle配置里指向子模块内的Schema路径即可,比如:file("./MyGraphQLSchema/schema.graphqls")

3. 通过Gradle依赖引入Schema(推荐)

如果独立Schema仓库发布了包含Schema的Maven/Gradle构件,你可以直接通过依赖引入,无需手动克隆仓库:

基础配置示例:

dependencies {
    // 替换为你的Schema构件坐标
    implementation("com.yourorg:my-graphql-schema:1.0.0")
}

apollo {
    service("myService") {
        // 从依赖中加载Schema文件
        schemaFiles.from(configurations.runtimeClasspath.files.flatMap {
            fileTree(it).matching { include("**/*.graphqls") }
        })
    }
}

简化配置(自动从依赖加载):

apollo {
    service("myService") {
        schemaFromDependencies.set(true)
        // 可选:排除不需要的Schema依赖
        schemaDependencyExclusions.add("com.otherorg:unwanted-schema")
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 07:27:11