首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何改变kapt生成输出dir路径?

如何改变kapt生成输出dir路径?
EN

Stack Overflow用户
提问于 2019-08-17 04:25:08
回答 1查看 1.2K关注 0票数 8

我尝试使用kaptvertx-Codegen来生成输出路径为/build/generated/source/kapt/main/的service.But。我要/src/main/generated/

配置build.gradle.kts,我发现生成adoc/src/main/generated/,但是其他文件没有变化。

build.gradle.kts

代码语言:javascript
复制
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
  kotlin("jvm") version "1.3.30"
  kotlin("kapt") version "1.3.30"
  id("io.vertx.vertx-plugin") version "0.8.0"
}
val vertxVersion = "3.8.0"
// ......
tasks.withType<KotlinCompile> {
  kotlinOptions {
    freeCompilerArgs = listOf("-Xjsr305=strict")
    jvmTarget = "1.8"
  }
}
dependencies {
  // ....
    implementation("io.vertx:vertx-codegen")
    kapt("io.vertx:vertx-service-proxy:$vertxVersion:processor")
    kapt("io.vertx:vertx-codegen:$vertxVersion:processor")
  // ....
}

kapt{
  arguments {
    arg("codegen.output", project.file("src/main/generated").path)
    arg("kapt.kotlin.generated", project.file("src/main/generated").path)
  }
  javacOptions {
    option("-AoutputDirectory", project.file("src/main/generated").path)
    option("-Acodegen.output", project.file("src/main/generated").path)
  }
}

我希望输出路径是/src/main/generated/,但是实际的输出路径是/build/generated/source/kapt/main/。你能帮我.?

EN

回答 1

Stack Overflow用户

发布于 2021-01-03 20:32:34

生成Kotlin源:

通过使用javac参数,我设法解决了生成的Kotlin源的问题:

代码语言:javascript
复制
val generatedKotlinSources = project.file("src/main/generated").path
kapt {
    javacOptions {
        option("-Akapt.kotlin.generated=$generatedKotlinSources")
    }
}

(令人惊讶的是,option("-Akapt.kotlin.generated", generatedKotlinSources)没有奏效。)

该解决方案与使用processingEnv.options["kapt.kotlin.generated"]的注释处理器一起工作,如用Kotlin进行注释处理页面所描述的那样。

生成Java源:

但是,在生成Java源时,注释处理器使用用滤片器初始化的javac上下文。当使用Java处理器时,您可以使用-s dir javac参数覆盖这个路径,但是这个值是用KAPto"generated/source/kapt/$sourceSetName" (见源代码)硬编码的。

因此,为生成的更改输出目录似乎是不可能的。

(没错,"generated/source/kaptKotlin/$sourceSetName"也是硬编码的,但它被用作"kapt.kotlin.generated"选项的默认值。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57533249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档