gpt4 book ai didi

bazel - 使用 bazel 时,如何让 protobuf 方法在 intellij 中解析?

转载 作者:行者123 更新时间:2023-12-02 04:33:10 26 4
gpt4 key购买 nike

我遇到了一个问题,我有一个使用 protobuf 并使用 bazel 构建的工作 java 程序,但是 intellij 无法识别 toByteArray 方法。
我 fork 了 https://github.com/cgrushko/proto_library在我的本地机器上,将工作区导入 intellij 并构建。然后我添加了以下java主类:

package src;

import demo.PersonOuterClass;

public class Main {
public static void main(String argv[]) {
byte[] ba = PersonOuterClass.Person.newBuilder().setEmail("dwwd").build().toByteArray();
for (byte b : ba) {
System.out.println(b);
}
}
}

以及以下 bazel 构建规则
java_binary(
name = "Main",
main_class = "src.Main",
srcs = ["Main.java"],
deps = [":person_java_proto"]
)

程序构建并正常运行,但在 intellij 中 toByteArray() 是红色的,intellij 说它无法解析该方法。

我怀疑问题是生成的 Person 扩展了 com.google.protobuf.GeneratedMessageV3 但 Intellij 不知道 GeneratedMessageV3 并且它扩展了一个类, AbstractMessageLite ,它定义了 toByteArray 方法。

任何人都知道如何修复 bazel 构建目标或 intellij,以便 ide 解析 toByteArray?

谢谢,

汤姆。

最佳答案

我通过将 bazel-/external/java/com_google_protobuf_java/core/src/main/java 标记为源根来解决这个问题。 (右键单击 -> 将目录标记为 -> 源根目录)

关于bazel - 使用 bazel 时,如何让 protobuf 方法在 intellij 中解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46548228/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com