如何修改gradle任务openapi3';这是迪彭森。gradle插件是用kotlin编写的

如何修改gradle任务openapi3';这是迪彭森。gradle插件是用kotlin编写的,gradle,kotlin,gradle-plugin,spring-restdocs,Gradle,Kotlin,Gradle Plugin,Spring Restdocs,我添加了一个gradle插件com.epages:restdocs api spec gradle插件:0.9.0,它公开了一个gradle任务openapi3。此任务依赖于运行所有测试的任务。我希望此任务依赖于myCustomTest任务,它只运行我测试的一个子集。我该怎么做呢 到目前为止,我甚至无法向它添加dependsOn,尽管添加dependsOn可能不是解决方案。我得到了以下错误: Could not find method dependsOn() for arguments [tas

我添加了一个gradle插件
com.epages:restdocs api spec gradle插件:0.9.0
,它公开了一个gradle任务
openapi3
。此任务依赖于运行所有测试的任务。我希望此任务依赖于
myCustomTest
任务,它只运行我测试的一个子集。我该怎么做呢

到目前为止,我甚至无法向它添加
dependsOn
,尽管添加
dependsOn
可能不是解决方案。我得到了以下错误:

Could not find method dependsOn() for arguments [task ':myCustomTest'] on object of type com.epages.restdocs.apispec.gradle.OpenApi3Extension
当我尝试执行以下任一操作时:

  • openapi3.dependsOn myCustomTest
  • openapi3{dependsOn myCustomTest}

这个插件的一个特别之处是它是用kotlin编写的,这里是源代码:

找到了一个简单的解决我上面问题的方法。事实证明,我可以用-x运行openapi3来跳过某些任务。因此,下面的内容将按我所希望的方式工作:

gradle myCustomTest openapi3 -x check

无需修改gradle构建脚本。

由于openapi3已注册为扩展,并且在使用相同名称注册任务后,您无法静态声明它,因此使用动态模式:

 myCustomTest.finalizedBy {
       tasks.findAll {task -> task.name.startsWith('openapi3')}
 }