Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将带有参数的现有Gradle任务包装到自定义任务中?_Gradle_Groovy - Fatal编程技术网

如何将带有参数的现有Gradle任务包装到自定义任务中?

如何将带有参数的现有Gradle任务包装到自定义任务中?,gradle,groovy,Gradle,Groovy,我正在尝试创建一个自定义Gradle任务,该任务使用特定于我的项目的参数调用现有的Gradle任务。以下是我如何从命令行调用任务: ./gradlew downloadJson \ -Pendpoint=http://example.com/foo \ -Pdestination=src/main/com/example/foo.json 我想创建一个downloadFoo任务,我可以在不明确指定参数的情况下调用它 tasks.register("downloadFoo" /*

我正在尝试创建一个自定义Gradle任务,该任务使用特定于我的项目的参数调用现有的Gradle任务。以下是我如何从命令行调用任务:

./gradlew downloadJson \
    -Pendpoint=http://example.com/foo \
    -Pdestination=src/main/com/example/foo.json
我想创建一个
downloadFoo
任务,我可以在不明确指定参数的情况下调用它

tasks.register("downloadFoo" /* type needed? */) {
    // What goes here?
}
相关的

    • 没有真正的任务概念将其他任务包装在Gradle中

      在这种情况下,您可以只创建一个类型为
      ApolloadSchematask
      的新任务,然后设置属性:

      import com.apollographql.apollo.gradle.internal.ApolloDownloadSchemaTask
      
      tasks.register("downloadFoo", ApolloDownloadSchemaTask) { task ->
          description("Downloads foo.")
          group("Apollo")
          task.schemaFilePath.set("src/main/com/example/foo.json")
          task.endpointUrl.set("http://example.com/foo")
      }
      
      请尝试以下表单:

      tasks.register("downloadBackendSchema", com.apollographql.apollo.gradle.internal.ApolloDownloadSchemaTask) { task ->
          description("Downloads Apollo Schema")
          group("Apollo")
          task.schemaRelativeToProject.set("src/main/java/com/project/backend/grqphql/schema.json")
          task.endpoint.set("http://your-project.com/graphql")
      }
      

      您有权访问
      downloadJson
      任务吗?我无法更改
      downloadJson
      任务。它由第三方Gradle插件提供。我想添加一个自定义包装器任务,它可以设置特定于我的用例的参数。哪个插件?它是公开的吗?我想把最新答案的。。。您必须注意标记为
      internal
      的更改,因此可能会更改,但这应该适用于
      1.3.1
      谢谢。您能描述一下
      schemaRelativeToProject
      相对于
      schemaFilePath
      endpointUrl
      的优势吗?