Java 我能';t生成gRPC存根类
我设法通过.proto文件生成这些类,但它们在构建中 我希望在main中生成类,因为当我要扩展存根时,不可能实现这些方法 看: 文件.proto:Java 我能';t生成gRPC存根类,java,spring-boot,grpc,Java,Spring Boot,Grpc,我设法通过.proto文件生成这些类,但它们在构建中 我希望在main中生成类,因为当我要扩展存根时,不可能实现这些方法 看: 文件.proto: syntax = "proto3"; package demogrpcserver.tcp; option java_multiple_files = true; option java_package = "com.example.demogrpcserver"; option java_outer_cl
syntax = "proto3";
package demogrpcserver.tcp;
option java_multiple_files = true;
option java_package = "com.example.demogrpcserver";
option java_outer_classname = "tcp";
service TCPService {
rpc execute(TCPMonitorRequest) returns (TCPMonitorResponse);
}
message TCPMonitorRequest {
string socketOpen = 1;
string messageType = 2;
}
message TCPMonitorResponse {
bool success = 1;
string txId = 2;
}
proto文件位于主文件夹中
有人知道如何解决吗?您可以使用pom文件中的插件在src路径中自动生成原型文件
<plugin>
<groupId>com.github.os72</groupId>
<artifactId>protoc-jar-maven-plugin</artifactId>
<version>3.6.0.1</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<includeMavenTypes>direct</includeMavenTypes>
<inputDirectories>
<include>src/main/resources</include>
</inputDirectories>
<outputTargets>
<outputTarget>
<type>java</type> <outputDirectory>src/proto/</outputDirectory>
</outputTarget>
<outputTarget>
<type>grpc-java</type>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.15.0</pluginArtifact>
<outputDirectory>src/proto/</outputDirectory>
</outputTarget>
</outputTargets>
</configuration>
</execution>
</executions>
</plugin>
com.github.os72
ProtocJarMaven插件
3.6.0.1
生成源
跑
直接的
src/main/resources
java-src/proto/
GRPCJava
io.grpc:protoc gen grpc java:1.15.0
src/proto/
否则,使用当前设置,您可以导入原型文件并对其进行扩展。请参阅gRPC Java自述文件。对于非Android Gradle版本,您将使用:
plugins {
id 'com.google.protobuf' version '0.8.15'
}
protobuf {
protoc {
artifact = "com.google.protobuf:protoc:3.12.0"
}
plugins {
grpc {
artifact = 'io.grpc:protoc-gen-grpc-java:1.36.0'
}
}
generateProtoTasks {
all()*.plugins {
grpc {}
}
}
}
您还可以查看。您可以使用protoc工具在任何地方生成Java类
protoc \
-I PATH_TO_YOUR_PROTOS \
--java_out=PATH_TO_JAVA_LOCALTION \
PROTO_FILE_NAME_THAT_WILL_BE_IN_$PATH_TO_YOUR_PROTOS
protoc \
-I $PATH_TO_YOUR_PROTOS \
--java_out=$PATH_TO_JAVA_LOCALTION \
--plugin=protoc-gen-grpc-java=/usr/local/bin/protoc-gen-grpc-java \
PROTO_FILE_NAME_THAT_WILL_BE_IN_$PATH_TO_YOUR_PROTOS
安装protoc和protoc grpc java插件
PROTOC_VERSION="3.12.0"
JAVA_GEN_VERSION="3.7.1"
JAVA_GRPC_GEN_VERSION="1.24.0"
## Protobuf compiler
RUN apt-get update && \
apt-get install -y unzip && \
wget https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOC_VERSION/protoc-$PROTOC_VERSION-linux-x86_64.zip && \
unzip protoc-$PROTOC_VERSION-linux-x86_64.zip -d /usr/local/ && \
rm -rf protoc-$PROTOC_VERSION-linux-x86_64.zip
# Protobuf Java
RUN curl https://repo1.maven.org/maven2/io/grpc/protoc-gen-grpc-java/1.27.2/protoc-gen-grpc-java-1.27.2-linux-x86_64.exe -o /usr/local/bin/protoc-gen-grpc-java && \
chmod +x /usr/local/bin/protoc-gen-grpc-java
您可以找到更多信息Nice。进入Gradle?实现组:“com.github.os72”,名称:“ProtocJarMaven插件”,版本:“3.11.4”,我的应用程序配置了Gradle。你知道我是如何在gradle中应用这个设置的吗?希望这对@devr有所帮助,我为gradle找到了一个