如何将带有参数的现有Gradle任务包装到自定义任务中?
我正在尝试创建一个自定义Gradle任务,该任务使用特定于我的项目的参数调用现有的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" /*
./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
的优势吗?