Iva*_*lin 15 java annotations protocol-buffers generated jacoco
我将 gRPC 框架与 Proto 3 一起使用。我们有一个 java 代码覆盖工具 Jacoco,它可以扫描 java 字节代码以查找编译类中的 java“注释”@Generate,如果有,它会从覆盖范围中跳过该 java 类。但是 Proto-compiler 添加了这个注释:
@javax.annotation.Generated(
value = "by gRPC proto compiler (version 1.20.0)",
comments = "Source: myProto.proto")
public class MyClass {
...
}
Run Code Online (Sandbox Code Playgroud)
但是注释 javax.annotation.Generate 有 @Retention(value=SOURCE) ,它在编译的类中不存在。
有没有办法在编译时向 protobuf 生成的 java 文件添加注释?
这是一个老问题,但仍然
https://github.com/protocolbuffers/protobuf/issues/42
所以你应该添加--java_out=annotate_code到选项列表中protoc。
如果你使用https://github.com/google/protobuf-gradle-plugin gradle 插件进行代码生成,那么你可以这样做(Gradle Kotlin DSL):
protobuf {
generateProtoTasks {
all().forEach { task ->
task.builtins {
getByName("java") {
option("annotate_code")
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1660 次 |
| 最近记录: |