为 Quarkus Gradle 插件生成的 gRPC 类 设置目标目录

Setting target directory for gRPC classes generated by Quarkus Gradle plugin

运行 ./gradlew quarkusGenerateCode 运行良好,但是生成的源代码位于 build 目录下:

我不想将此路径设置为 Gradle SourcesSet、“将目录标记为”在 Intellij 中生成的源根等,因为它位于构建目录下。

有没有办法将输出目录设置为 src/quarkus-generated-sources 之类的东西? Quarkus 用户指南和 gradle 插件文档没有提供太多有关该主题的信息。

build.gradle,没什么特别的

plugins {
    id 'io.quarkus'
}

dependencies {
    implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")
    implementation 'io.quarkus:quarkus-grpc'
    ... 
}

无法为内置代码生成机制指定替代路径。

Quarkus 从您的 *.proto 文件生成的 类 可能会经常更改。如果您在开发模式下 运行 Quarkus,它们将在每次更改时重新生成(在 *.proto 文件中)。在这样的设置中,这是构建的结果而不是来源,这就是为什么我把它放在 build.

中的原因

我认为你可以使用 Gradle protobuf plugin to generate the java files. It has an option to specify the output directory. Don't forget to register quarkus-grpc-protoc-plugin similarly to Maven protobuf plugin configuration。 切换到它的缺点是在修改 *.proto 文件时将无法使用开发模式的全部功能。