2

我想将基于 vertx 的项目移动到https://github.com/sczyh30/vertx-blueprint-microservice.git模板。蓝图项目使用注解@vertxGen 等在编译期间生成代码。

我正在使用 gradle-script-kotlin 来构建项目。我需要使用 kapt 插件根据注释生成代码(通过 vertx ... codegen )。不幸的是,我无法正确配置 kapt 插件。它给出以下错误:

w: [kapt] Sources 输出目录未指定,跳过注解处理

如果有人可以修复我的 gradle 构建文件,我会很高兴。以下是与 kapt 相关的片段

import org.jetbrains.kotlin.gradle.plugin.* // kaptExtension
...
apply {
  plugin("kotlin-kapt")
}
...

fun Project.kapt(setup: KaptExtension.() -> Unit) = the<KaptExtension>().setup()

kapt {
        generateStubs = true

        javacOptions( closureOf<KaptJavacOptionsDelegate> {
                option("-proc:only")
                option("-processor", "io.vertx.codegen.CodeGenProcessor") // vertx processor here
                option("-AoutputDirectory", "${projectDir}/src/main")
                option("-Acodegen.output", "${projectDir}/src/main")
        } )

        // specify output of generated code
        arguments( closureOf<KaptAnnotationProcessorOptions> {
                arg("destinationDir", "${buildDir}/generated/source/kapt/main")
        } )
}
...
java {
...
        sourceSets.getByName("main").java.srcDirs("${project.buildDir}/generated/source/kapt/main")
}

让我知道任何其他信息/查询。提前致谢。

4

2 回答 2

0

我必须在 build.gradle.kts 中添加以下内容

dependencies {
....
        kapt("io.vertx:vertx-codegen:$vertx_version:processor")
...
}

仍然不知道为什么。在这里张贴让其他人知道。

于 2017-06-20T08:28:48.913 回答
0

除了 kotlin-kapt 插件和其他 kotlin 依赖项之外,您还可以在 build.gradle 文件中跟踪依赖项。生成代码就足够了(我正在使用相同的方式)。除非您正在寻找一些定制,否则不需要上面提到的 kapt 和 java 块。

dependencies {
  kapt "io.vertx:vertx-codegen:$vertxVersion:processor"
  compileOnly "io.vertx:vertx-codegen:$vertxVersion"
}
于 2018-07-16T18:43:17.947 回答