我正在尝试将我的项目设置为从原始文件生成Java代码,作为gradle构建的一部分。我让它生成代码,但是没有将生成的代码放入我期望的包中,这会导致问题。
我的一个原始文件的顶部看起来像:
syntax = "proto3";
import "google/protobuf/any.proto";
package gobgpapi;
option java_package = "com.foo";
在构建项目时,文件树如下所示:
您可以看到一个额外的main.java已添加到程序包中。这是哪里来的并且可以配置?
这是protobuf {我的build.gradle中的部分:
project(':foo-gobgp') {
protobuf {
generatedFilesBaseDir = "$projectDir/src/main/java"
protoc {
// The artifact spec for the Protobuf Compiler
artifact = "com.google.protobuf:protoc:$protobufJavaVersion"
}
//noinspection GroovyAssignabilityCheck
plugins {
grpc {
artifact = "io.grpc:protoc-gen-grpc-java:$grpcVersion"
}
}
generateProtoTasks {
ofSourceSet('main')*.plugins {
// Apply the "grpc" plugin whose spec is defined above, without
// options. Note the braces cannot be omitted, otherwise the
// plugin will not be added. This is because of the implicit way
// NamedDomainObjectContainer binds the methods.
grpc {}
}
}
}
}