试图将大摇大摆的codegen与gradle kotlindsl结合起来
我正试图让试图将大摇大摆的codegen与gradle kotlindsl结合起来,gradle,kotlin,swagger,Gradle,Kotlin,Swagger,我正试图让swagger code gen在一个用gradle(kotlin)构建的项目中工作 我在这里引用的是这个示例:它是在GradleGroovy版本中制作的 build.gradle.kts如下所示: repositories { jcenter() } plugins { java id("org.springframework.boot") version "2.1.2.RELEASE" id("io.spring.dependency-manage
swagger code gen
在一个用gradle(kotlin)构建的项目中工作
我在这里引用的是这个示例:它是在GradleGroovy版本中制作的
build.gradle.kts
如下所示:
repositories {
jcenter()
}
plugins {
java
id("org.springframework.boot") version "2.1.2.RELEASE"
id("io.spring.dependency-management") version "1.0.6.RELEASE"
id("org.hidetake.swagger.generator") version "2.16.0"
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
implementation ("io.swagger:swagger-annotations:1.5.21")
swaggerCodeGen("io.swagger:swagger-codegen-cli:2.3.1")
// Use JUnit test framework
testImplementation ("junit:junit:4.12")
}
swaggerSources {
petstore {
inputFile = file('petstore.yaml')
code {
language = 'spring'
}
}
}
但IntelliJ不喜欢台词中关于招摇的说法
我是gradle的新手,所以我不知道该怎么做。斯威格密码应该是一种功能吗?这个函数应该导入到哪里?哪里应该导入swaggerSources
?import org.hidetake.gradle.swagger.generator.GenerateSwaggerCode
import org.hidetake.gradle.swagger.generator.GenerateSwaggerCode
// plugins, repositories are same, but note import above ^^^
dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
implementation ("io.swagger:swagger-annotations:1.5.21")
"swaggerCodegen"("io.swagger:swagger-codegen-cli:2.3.1") // 1
// Use JUnit test framework
testImplementation ("junit:junit:4.12")
}
swaggerSources {
create("petstore").apply { // 2
setInputFile(file("petstore.yaml")) // 3
code(closureOf<GenerateSwaggerCode> { // 4
language = "spring"
})
}
}
//插件和存储库是相同的,但请注意上面的导入^^^
依赖关系{
实现(“org.springframework.boot:springbootstarterweb”)
实现(“io.swagger:swagger注释:1.5.21”)
“swaggerCodegen”(“io.swagger:swagger-codegen cli:2.3.1”)//1
//使用JUnit测试框架
测试实施(“junit:junit:4.12”)
}
招摇过市的消息来源{
创建(“petstore”)。应用{//2
setInputFile(文件(“petstore.yaml”)//3
代码(closureOf{//4
language=“spring”
})
}
}
1-Kotlin中的动态解析配置如下所示(从Groovy中动态解析,因此在编译时使用它是有问题的,字符串上的扩展调用操作符是我们的救星)
2-swaggerSources
返回您的NamedDomainObjectContainer
,以便添加我们调用的新容器create
,并将其名称作为参数
3-Kotlin不如Groovy灵活,因此调用setter而不是设置字段
4-Groovy的闭包远离功能接口,因此我们在插件的源代码中指定泛型类型闭包没有参数化。导入org.hidetake.gradle.swagger.generator.GenerateSwaggerCode
//插件和存储库是相同的,但请注意上面的导入^^^
依赖关系{
实现(“org.springframework.boot:springbootstarterweb”)
实现(“io.swagger:swagger注释:1.5.21”)
“swaggerCodegen”(“io.swagger:swagger-codegen cli:2.3.1”)//1
//使用JUnit测试框架
测试实施(“junit:junit:4.12”)
}
招摇过市的消息来源{
创建(“petstore”)。应用{//2
setInputFile(文件(“petstore.yaml”)//3
代码(closureOf{//4
language=“spring”
})
}
}
1-Kotlin中的动态解析配置如下所示(从Groovy中动态解析,因此在编译时使用它是有问题的,字符串上的扩展调用操作符是我们的救星)
2-swaggerSources
返回您的NamedDomainObjectContainer
,以便添加我们调用的新容器create
,并将其名称作为参数
3-Kotlin不如Groovy灵活,因此调用setter而不是设置字段
4-Groovy的闭包远离功能接口,因此我们在插件的源代码中指定泛型类型闭包没有参数化。您可能还想尝试OpenAPI生成器gradle插件:您可能还想尝试OpenAPI生成器gradle插件:我需要swaggerSources
任务。我在code(closureOf…)。谢谢我需要swaggerSources
任务。我在code(closureOf…)。谢谢