【问题标题】:How to modify the gradle task openapi3's dependsOn. The gradle plugin is written in kotlin如何修改gradle任务openapi3的dependsOn。 gradle 插件是用 kotlin 编写的
【发布时间】:2019-08-09 08:44:14
【问题描述】:

我添加了一个 gradle 插件 com.epages:restdocs-api-spec-gradle-plugin:0.9.0,它公开了一个 gradle 任务 openapi3。这个任务dependsOncheck 运行我所有的测试的任务。我想让这个任务依赖于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编写的,这里是源码:https://github.com/ePages-de/restdocs-api-spec/tree/master/restdocs-api-spec-gradle-plugin

【问题讨论】:

    标签: gradle kotlin gradle-plugin spring-restdocs


    【解决方案1】:

    由于openapi3注册为Extension,并且评估后任务注册为同名,不能静态声明,所以使用动态模式:

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

    【讨论】:

      【解决方案2】:

      为我上面的问题找到了一个简单的解决方案。事实证明,我可以使用 -x 运行 openapi3 来跳过某些任务。所以像下面这样的东西会按照我想要的方式工作:

      gradle myCustomTest openapi3 -x check
      

      无需修改 gradle build 脚本。

      【讨论】:

        猜你喜欢
        • 2022-12-09
        • 2015-03-21
        • 1970-01-01
        • 1970-01-01
        • 2019-05-17
        • 1970-01-01
        • 2018-10-05
        • 2017-06-06
        • 1970-01-01
        相关资源
        最近更新 更多