【问题标题】:Gradle - Incremental build support for a taskGradle - 对任务的增量构建支持
【发布时间】:2021-05-20 22:57:46
【问题描述】:

我在我的 Gradle 构建中使用了一些不支持增量构建功能的任务(Swagger codegen Gradle plugin & OpenAPI Style Validator)。

谷歌搜索了一下(并检查了 Gradle 文档)我知道似乎可以扩展任务以添加一些属性,所以我试了一下,但不幸的是它似乎不起作用。
这是我添加的build.gradle 扩展:

swaggerSources {
    jaxrsServer {
        inputFile = file('path/to/spec.yaml')
        code {
            language = 'jaxrs'
            library = 'jersey2'
            outputDir = file('build/generated/sources/swagger')
            templateDir = file('path/to/templates')
        }
    }
    jaxrsClient {
        inputFile = file('path/to/spec.yaml')
        code {
            language = 'java'
            library = 'jersey2'
            outputDir = file('build/generated/sources/swagger')
        }
    }
}

tasks.withType(GenerateSwaggerCode) {
    inputs.file('path/to/spec.yaml')
    outputs.dir('build/generated/sources/swagger')
}

[...]

openAPIStyleValidator {
    inputFile = "$projectDir/path/to/spec.yaml"
    validateInfoLicense = false
}

tasks.withType(org.openapitools.openapistylevalidator.gradle.OpenAPIStyleValidatorTask) {
    inputs.file("$projectDir/path/to/spec.yaml")
}

以及(截断的)构建输出:

> Task :module:openAPIStyleValidator
Validating spec: /.../path/to/spec.yaml
[...]
> Task :module:resolveSwaggerTemplate NO-SOURCE
> Task :module:generateSwaggerCodeJaxrsClient
> Task :module:generateSwaggerCodeJaxrsServer
> Task :module:generateSwaggerCode NO-SOURCE
> Task :module:compileJava

任务扩展错了吗?有没有其他方法可以做到这一点?

【问题讨论】:

    标签: gradle swagger openapi


    【解决方案1】:

    OpenAPIStyleValidatorTask 不会自行注册,因此您必须像这样创建新任务(基于 Kotlin 的配置):

    create("validateApiDoc", OpenAPIStyleValidatorTask::class.java) {
        this.setValidateInfoLicense(false)
        this.setInputFile("$projectDir/src/jvmMain/resources/swagger-ui/api_documentation.yaml")
    }
    

    【讨论】:

    • 你的意思是,你不能像他们在项目中提到的那样使用任务声明,而是创建一个新任务?
    • @Xendar 该插件根本不注册此任务。如果您运行gradle tasks --all,您会看到它不存在。因此,您必须为OpenAPIStyleValidatorTask 类注册任务。
    • 好吧,抱歉,在build.gradle 中添加openAPIStyleValidator 闭包就足以注册任务,并且在运行gradle tasks --all 时会出现。无论如何,增量构建问题的目的
    猜你喜欢
    • 1970-01-01
    • 2012-02-13
    • 2015-11-27
    • 2013-05-20
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    相关资源
    最近更新 更多