私はprotobufを使用し、bazelを使用してビルドされていますが、intellijがtoByteArrayメソッドを認識しないjavaプログラムを使用しているところに問題があります。 ローカルマシンでhttps://github.com/cgrushko/proto_libraryをフォークし、ワークスペースをintellijにインポートしてビルドしました。bazelを使用しているときにintellijで解決するprotobufメソッドを取得するにはどうすればよいですか?
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のは、それができることを言う:私は、次のJavaメインクラス追加しましたメソッドを解決しません。
生成されたPersonがcom.google.protobuf.GeneratedMessageV3を拡張しているが、intellijがGeneratedMessageV3について認識しておらず、toByteArrayメソッドを定義するAbstractMessageLiteクラスを拡張していると思われます。
toByteArrayがideによって解決されるように、誰でもbazelビルドターゲットまたはintellijを修正する方法を知っていますか?
ありがとう、
トム
ソースフォルダはbazelと同期するたびに再選択する必要があるため、この方法はあまり役に立ちません。 –