我对Gradle还不熟悉,我想自动执行以下任务:
- 从SpringBoot应用程序生成openapi.json文件(使用springdoc-openapi-gradle-plugin)
- 然后使用此生成的文件创建客户端SDK(使用Gradle Swagger生成器插件)
我的build.gradle.kts看起来像这样:
plugin{
id("org.springframework.boot") version "2.7.4"
id("io.spring.dependency-management") version "1.0.14.RELEASE"
//springdoc-openapi-gradle-plugin
id("org.springdoc.openapi-gradle-plugin") version "1.4.0"
//https://github.com/int128/gradle-swagger-generator-plugin
id("org.hidetake.swagger.generator") version "2.19.2"
...
}
repositories {
mavenCentral()
}
dependencies{
swaggerCodegen("org.openapitools:openapi-generator-cli:3.3.4")
...
}
swaggerSources {
register("petstore") {
setInputFile(file("${buildDir}/openapi.json"))
code.language = "typescript-fetch"
}
}
// ---!!! the following makes my gradle script fail !!!---
tasks.named("generateSwaggerCodePetstore"){
dependsOn(tasks.generateOpenApiDocs)
}
我的问题是,当我想运行任何gradle任务时,我会得到以下输出:
失败:生成失败,出现异常.
- 其中:构建文件“[...]/build.gradle.kts”行:153
- 问题:在根项目“getmad”中未找到名为“generateOpenApiDocs”的任务。
如果我从生成脚本中删除以下代码...
tasks.named("generateSwaggerCodePetstore"){
dependsOn(tasks.generateOpenApiDocs)
}
...我可以轻松地运行以下命令:$ ./gradlew clean generateOpenApiDocs
然后道:$ ./gradlew generateSwaggerCode
个
但不知何故,我无法链接这些命令,也无法在我的构建脚本中编写这些任务之间的程序依赖关系。
我有一个单一的gradle项目(还没有子项目)。
有人能解决我的问题吗?
1条答案
按热度按时间jdgnovmf1#
任务
generateOpenApiDocs
尚未配置,因此您不能仅通过tasks
的属性访问它。您必须通过其他方式访问它:顺序将如下所示: