我添加了maven配置,如下所示。
<plugin>
<groupId>com.github.os72</groupId>
<artifactId>protoc-jar-maven-plugin</artifactId>
<version>3.5.1</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<protocArtifact>com.google.protobuf:protoc:3.0.0</protocArtifact>
<inputDirectories>
<include>src/main/protobuf</include>
</inputDirectories>
<outputTargets>
<outputTarget>
<type>java</type>
<outputDirectory>src/main/java</outputDirectory>
</outputTarget>
<outputTarget>
<type>grpc-java</type>
<outputDirectory>src/main/java</outputDirectory>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.0.1</pluginArtifact>
</outputTarget>
</outputTargets>
</configuration>
</execution>
</executions>
</plugin>
我正在通过“mvn proc-jar: run”执行它,但是它跳过了grpc服务存根,只将“消息”转换为java代码。
输出为
[INFO] Protoc version: 3.5.1
protoc-jar: protoc version: 3.5.1, detected platform: osx-x86_64 (mac os x/x86_64)
protoc-jar: embedded: bin/3.5.1/protoc-3.5.1-osx-x86_64.exe
protoc-jar: executing: [/var/folders/9y/w8qrc__9513dv57323sjdlmw0000gn/T/protocjar320569499467403052/bin/protoc.exe, --version]
libprotoc 3.5.1
[INFO] Protoc command: /var/folders/9y/w8qrc__9513dv57323sjdlmw0000gn/T/protocjar320569499467403052/bin/protoc.exe
[INFO] Input directories:
[INFO] /Users/dev/learn/proto-java/src/main/protobuf
[INFO] Output targets:
[INFO] java: /Users/dev/learn/proto-java/target/generated-sources (add: main, clean: false, plugin: null, outputOptions: null)
[INFO] Processing (java): helloworld.proto
protoc-jar: executing: [/var/folders/9y/w8qrc__9513dv57323sjdlmw0000gn/T/protocjar320569499467403052/bin/protoc.exe, -I/Users/dev/learn/proto-java/src/main/protobuf, --java_out=/Users/dev/learn/proto-java/target/generated-sources, /Users/dev/learn/proto-java/src/main/protobuf/helloworld.proto]
[INFO] Adding generated classes to classpath
我有一个简单的proto文件定义为
syntax = "proto3";
option java_multiple_files = true;
option java_package = "-.-.-.helloworld";
option java_outer_classname = "HelloWorldProto";
option objc_class_prefix = "HLW";
package helloworld;
// The greeting service definition.
service Greeter {
// Sends a greeting
rpc SayHello (HelloRequest) returns (HelloReply) {}
rpc SayHelloAgain (HelloRequest) returns (HelloReply) {}
}
// The request message containing the user's name.
message HelloRequest {
string name = 1;
}
// The response message containing the greetings
message HelloReply {
string message = 1;
}
我只输出生成为HelloReply、HelloReplyOrBuilder、HelloRequest、HelloRequestOrBuilder、HelloWorldProto的文件。缺少迎宾Grpc服务存根。我是马文的新手,我错过了什么吗。
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.5.1</version>
<configuration>
<protocArtifact>com.google.protobuf:protoc:${protoc.version}:exe:${os.detected.classifier}</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.4.0:exe:${os.detected.classifier}</pluginArtifact>
</configuration>
<executions>
<execution>
<id>protobuf-generate</id>
<phase>process-resources</phase>
<goals>
<goal>compile</goal>
<goal>compile-custom</goal>
</goals>
</execution>
</executions>
</plugin>
使用maven阶段。。。https://maven.apache.org/ref/3.5.2/maven-core/lifecycles.html
mvn生成源
将生成您的GreeterRpc
我刚刚开始玩google proto。当我尝试编译proto java示例中的proto文件时,它不会生成任何grpc文件。 原型文件,https://github.com/grpc/grpc-java/blob/master/examples/src/main/proto/hello_world.proto 终端输出, rsonkhla@raman-OptiPlex-9020:~/sandbox
我设法通过.proto文件生成了类,但它们在构建中。 我希望在main中生成类,因为当我要扩展存根时,不可能实现这些方法。 瞧: 文件.proto: proto文件在主文件夹中。 有人知道怎么解决吗?
我想使用swagger codegen maven插件为我的API生成JAX-RS服务器存根,但我想使用我自己的服务实现类,而不是生成的服务实现类。除了这个类,还有什么方法可以生成所有的东西吗?对于我的API,该工具生成四个API类:ProfilesApi、ProfilesApiService、ProfilesApiServiceFactory和ProfilesApiServiceImpl。 我目
gRPC 官方文档中的 quickstart - php, 很容易给 PHPer 产生误导, 按照官网的文档, 运行起来 gRPC 服务就很麻烦, 更不用说整套的 RPC 服务了. 推荐阅读 tech| 再探 grpc, 讲解了在 PHP 中实现 gRPC 相关基础知识. hyperf 对 gRPC 支持做了更进一步的封装, hyperf-skeleton 项目为例, 详细讲解整个步骤: .pro
正如问题所说,我从源代码编译了grpc,也做了,但是,grpc_python_plugin的
有一个目录 写入终端 我得到了错误 proc-gen-go:无效的Go导入路径"转发"为"proto/forward.proto" 导入路径必须至少包含一个正斜杠(“/”)字符。 看见https://developers.google.com/protocol-buffers/docs/reference/go-generated#package了解更多信息。 --go\u out:protoc