由于您必须共享 .proto 文件来为 gRPC 定义数据和服务,因此服务提供者和客户端需要访问相同的 .proto 文件。是否有分发这些文件的通用策略?我想避免每个项目在其 Git 存储库中都有自己的 .proto 文件,而我们的团队成员需要手动编辑这些文件或通过电子邮件共享它们。
有什么共同的最佳实践吗?
我试图为 Sonarqube 生成 Jacoco 报告。生成文件 jacoco.exec 有效,但在 Eclipse 的 EclEmma 中将它用于 Sonarqube OR 会导致 EOFException(因此两个实现都很糟糕,或者生成的文件是问题所在)。关于这个问题有一些问题但没有解决方案(除了不使用测试覆盖率)。
我创建了一个 Spring Boot 应用程序并尝试使用 Maven 生成 Jacoco 测试覆盖率报告。使用没有问题,mvn test在目标文件夹中生成了一个jacoco.exec。但是当我尝试将结果上传到 Sonarqube 时,mvn sonar:sonar我总是收到此错误:
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar (default-cli) on project project-name: Unable to read XXX\project-name\target\jacoco.exec: EOFException -> [Help 1]
Run Code Online (Sandbox Code Playgroud)
pom.xml
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.7.0.1746:sonar (default-cli) on project project-name: Unable to read XXX\project-name\target\jacoco.exec: EOFException -> [Help 1]
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
$ mvn sonar:sonar -Dsonar.projectKey=... -Dsonar.host.url=... -Dsonar.login=... -eX
[INFO] Error stacktraces are …Run Code Online (Sandbox Code Playgroud) ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 8081)
.usePlaintext()
.build();
Run Code Online (Sandbox Code Playgroud)
GRPC 服务器和客户端之间存在连接。受管通道提供连接。何时必须关闭托管通道?或者它应该打开直到服务器关闭?最好的做法是什么?