如何使用gradle type:exec下载apollo模式

2019年7月23日 18点热度 0条评论

我想知道如何在gradle中执行“apollo schema:download”命令,因此我不必每次更新时都通过命令行生成模式。

我已经在stackoverflow上搜索了类似的东西,但似乎找不到任何东西。这是我跑得很远的:

//this will list all the files in my directory -- this works
task createSchema(type:Exec){
  commandLine 'ls'
}

//but what i want to do is this -- this doesn't work
task createSchema(type:Exec){
  commandLine 'apollo schema:download src/main/graphql/schema.json --endpoint="http://myendpoint.com" --header="myHeader: header"'
}

我的期望:

加载阿波罗项目

将架构保存到src / main / graphql / schema.json

我得到了:

Cause: error=2, No such file or directory

解决方案如下:

阿波罗android仓库的github问题解释了我的问题:https://github.com/apollographql/apollo-android/issues/683

我如何解决的:

    import com.apollographql.apollo.gradle.ApolloSchemaIntrospectionTask

class ApolloIntrospect extends ApolloSchemaIntrospectionTask {}

task introspectSchema(type: ApolloIntrospect) {
    url = "http://api.githunt.com/graphql"
    output = project.projectDir.absolutePath + 'schema.json'
}

该模式不得出现在src / main / graphql目录中,否则将引发错误。