Unless, there's some option or way to execute it in java/kotlin without reying on user's machine. I believe https://github.com/os72/protoc-jar is the only option.
On Tuesday, February 28, 2023 at 12:59:48 AM UTC+5:30 ritesh singh wrote: > I went through docs - and i guess importer can be used - > https://protobuf.dev/reference/cpp/api-docs/google.protobuf.compiler.importer/ > But, this is not exposed as java api. > > On Sunday, February 26, 2023 at 7:25:49 PM UTC+5:30 ritesh singh wrote: > >> I was also wondering, if >> https://mvnrepository.com/artifact/com.google.protobuf/protoc can be >> used to do what above *protoc *command is doing? Because, to run the >> protoc command from my plugin, the user's machine needs to have the protoc >> compiler installed. >> >> My idea is to just get the .proto file and .pb file and just generate the >> json using DynamicMessage, i don't want to go through the process of >> generating .java files as i want this plugin be light. >> >> On Saturday, February 25, 2023 at 9:01:50 AM UTC+5:30 ritesh singh wrote: >> >>> I think it's not working with absolute path. >>> >>> If my imports are like this >>> >>> import >>> "com/google/samples/apps/nowinandroid/data/dark_theme_config.proto"; >>> import "com/google/samples/apps/nowinandroid/data/theme_brand.proto"; >>> >>> >>> it wont work. But if it's relative it works >>> >>> import "theme_brand.proto"; >>> import "dark_theme_config.proto"; >>> On Saturday, February 25, 2023 at 5:42:28 AM UTC+5:30 ritesh singh wrote: >>> >>>> This is resolved. Thanks. >>>> >>>> On Saturday, February 25, 2023 at 2:35:02 AM UTC+5:30 Adam Cozzette >>>> wrote: >>>> >>>>> Probably the cleanest solution would be to cd to the directory >>>>> containing com/ and run protoc from there: protoc -I . >>>>> --include_imports --descriptor_set_out=/dev/stdout >>>>> com/google/samples/apps/nowinandroid/data/user_preferences.proto >>>>> >>>>> On Fri, Feb 24, 2023 at 11:11 AM ritesh singh <[email protected]> >>>>> wrote: >>>>> >>>>>> If i remove imports, it works fine. >>>>>> >>>>>> On Saturday, February 25, 2023 at 12:41:13 AM UTC+5:30 ritesh singh >>>>>> wrote: >>>>>> >>>>>>> It looks like this >>>>>>> >>>>>>> syntax = "proto3"; >>>>>>> >>>>>>> import >>>>>>> "com/google/samples/apps/nowinandroid/data/dark_theme_config.proto"; >>>>>>> import "com/google/samples/apps/nowinandroid/data/theme_brand.proto" >>>>>>> ; >>>>>>> >>>>>>> option java_package = >>>>>>> "com.google.samples.apps.nowinandroid.core.datastore"; >>>>>>> option java_multiple_files = true; >>>>>>> >>>>>>> message UserPreferences { >>>>>>> reserved 2; >>>>>>> repeated int32 deprecated_int_followed_topic_ids = 1; >>>>>>> int32 topicChangeListVersion = 3; >>>>>>> int32 authorChangeListVersion = 4; >>>>>>> int32 newsResourceChangeListVersion = 6; >>>>>>> repeated int32 deprecated_int_followed_author_ids = 7; >>>>>>> bool has_done_int_to_string_id_migration = 8; >>>>>>> repeated string deprecated_followed_topic_ids = 9; >>>>>>> repeated string deprecated_followed_author_ids = 10; >>>>>>> repeated string deprecated_bookmarked_news_resource_ids = 11; >>>>>>> bool has_done_list_to_map_migration = 12; >>>>>>> >>>>>>> // Each map is used to store a set of string IDs. The bool has no >>>>>>> meaning, but proto3 doesn't >>>>>>> // have a Set type so this is the closest we can get to a Set. >>>>>>> map<string, bool> followed_topic_ids = 13; >>>>>>> map<string, bool> followed_author_ids = 14; >>>>>>> map<string, bool> bookmarked_news_resource_ids = 15; >>>>>>> >>>>>>> ThemeBrandProto theme_brand = 16; >>>>>>> DarkThemeConfigProto dark_theme_config = 17; >>>>>>> >>>>>>> bool should_hide_onboarding = 18; >>>>>>> >>>>>>> bool use_dynamic_color = 19; >>>>>>> } >>>>>>> >>>>>>> On Saturday, February 25, 2023 at 12:34:51 AM UTC+5:30 Adam Cozzette >>>>>>> wrote: >>>>>>> >>>>>>>> What do the import lines in user_preferences.proto look like? In >>>>>>>> your case the import paths should point to files relative to the >>>>>>>> current >>>>>>>> directory. >>>>>>>> >>>>>>>> On Fri, Feb 24, 2023 at 9:40 AM ritesh singh <[email protected]> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> I have 3 proto files in the current directory. >>>>>>>>> >>>>>>>>> user_preferences.proto imports other protos and all are available >>>>>>>>> in the same directory. >>>>>>>>> >>>>>>>>> But, if i try to run this command, it throws an error. - *Imported >>>>>>>>> file not found.* >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> *protoc --include_imports --descriptor_set_out=/dev/stdout >>>>>>>>> user_preferences.proto* >>>>>>>>> Here, I am trying to invoke protoc with --descriptor_set_out to >>>>>>>>> parse the proto file and convert it into a serialized >>>>>>>>> FileDescriptorSet >>>>>>>>> >>>>>>>>> -- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "Protocol Buffers" group. >>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>> send an email to [email protected]. >>>>>>>>> To view this discussion on the web visit >>>>>>>>> https://groups.google.com/d/msgid/protobuf/46f16320-f15b-4c79-a998-57b30e94751cn%40googlegroups.com >>>>>>>>> >>>>>>>>> <https://groups.google.com/d/msgid/protobuf/46f16320-f15b-4c79-a998-57b30e94751cn%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>>>>> . >>>>>>>>> >>>>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Protocol Buffers" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected]. >>>>>> >>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/protobuf/93225cb4-eadc-4a71-9f89-f169043f6da7n%40googlegroups.com >>>>>> >>>>>> <https://groups.google.com/d/msgid/protobuf/93225cb4-eadc-4a71-9f89-f169043f6da7n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>> -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/protobuf/0288a25a-31ee-4852-8e48-427f80e85326n%40googlegroups.com.
