我正在与以下代码进行斗争:https://github.com/thebignet/swagger-codegen-gradle-plugin-example
尝试使用Swagger codegen和Gradle构建一个REST客户端。我是Gradle的新手,看这个例子很困惑,因为有多个变量/属性/名称,我不知道它们来自哪里或它们做什么。尤其是这一部分:
clean.doFirst {
delete(swaggerOutputDir)
}
configurations {
swagger
}
sourceSets {
swagger {
compileClasspath = configurations.swaggerCompile
java {
srcDir file("${project.buildDir.path}/swagger/src/main/java")
}
}
main {
compileClasspath += swagger.output
runtimeClasspath += swagger.output
}
test {
compileClasspath += swagger.output
runtimeClasspath += swagger.output
}
}
compileSwaggerJava.dependsOn generateApi
classes.dependsOn swaggerClasses
compileJava.dependsOn compileSwaggerJava
大摇大摆。输出--这是从哪里来的?
为了完全理解这段代码,您必须通读Gradle DSL(领域特定语言)
SourceSet表示Java源和资源的逻辑组。
上面提到的java插件在创建新的SourceSet时还创建一些相关的任务:compilesourcesetjava
、processsourcesetresources
和sourcesetclasses
(用每个SourceSet的名称替换SourceSet)。这就是那些compileswaggerJava
、swaggerClasses
从swagger
源集生成的任务。
对于标准源集,这些任务是:
主源集的任务:compileJava
、processResources
、classes
测试源集的任务
一个任务可能依赖于其他任务,或者可能被安排始终在另一个任务之后运行。
这是通过任务的属性配置的。其中之一是Dependson
属性,它解释了提供的代码的最后一个块。(注意:最后一段代码中的generateApi任务是在问题中共享的OP链接中定义的)
如何从gradle运行另一个gradle脚本。我有多个gradle脚本在
我正在尝试编译简单的Kotlin Gradle脚本。我已经用build创建了一个Idea项目。格拉德尔。kts包含以下内容: 它的灵感来自gradle/kotlin-dsl存储库中的复制示例,它既没有从IDE编译,也没有从终端中的gradlew编译。它给了我这些错误: 也许我缺少某种插件来包含?我该怎么做?
还有中的块控制新的插件方法,我尝试定义块并添加,但它不起作用。 简而言之,使用DSL添加的插件是如何工作的,哪个块告诉从哪里找到插件,然后哪一行告诉在类路径中添加它。 更新:对于ex,repositories中的maven块-buildscript部分告诉您在位置和依赖项中的classpath标签下查看插件-buildscript告诉您将此依赖项添加到应用程序类路径中 更正:
我是新手。我的应用程序是一个spring boot应用程序。消费者在协议代理中创建了协议。现在我正在尝试从providers端运行测试,我正在使用gradle插件来运行测试。我有几个问题: > 使用者发布 协议没有指定任何状态。这意味着我不需要在提供者端使用任何stateChangeUrl? 我想实现的是:当我说pactVerify 服务器启动,我的Spring Boot应用程序应该在localh
基本上我想这样做: 使用其他gradle文件中的Gradle函数 也就是说,在一个gradle脚本中从另一个调用一个函数。问题是我的build.gradle是静态编程语言(build.gradle.kts),我的函数所在的脚本仍然是groovy。 我遵循了groovy到groovy的上述链接,但我无法使用Kotlin DSL实现这一点。 在我的groovy文件中,函数。gradle,我有: 和 然
我正在用IntelliJ中的简单hello world应用程序试用gradle脚本kotlin。但是IntelliJ自动完成不会在构建中弹出。格拉德尔。kts文件。 https://github.com/gradle/gradle-script-kotlin/tree/master/samples/hello-world 建筑格拉德尔。kts: 设置。格拉德尔: 我有IntelliJ kotlin