我有一个带模块的gradle项目。 moduleA
只包含protobuf文件,并生成一个jar文件,其中包含从 .proto
文件夹。 moduleB
视情况而定 moduleA
( implementation project(':moduleA')
).
moduleA
│ build.gradle
│ src
│ └───main
│ └───proto <-- proto file defining gRPC services
moduleB
│ build.gradle
│ src <-- code dependent on classes generated from moduleA
build.gradle
如果我从gradle构建/运行这个项目,它会运行得很好。
问题:intellij idea看不到从 moduleA
来源 moduleB
(进口为红色)。
问题:如何让intellij idea正确识别从 .proto
文件夹?
我正在使用intellij idea 2020.2.4(终极版)。
2条答案
按热度按时间qij5mzcb1#
这与在同一个模块中使用proto生成的代码是一样的,它需要先在那里,然后ide才能获取它。
这种依赖关系不能静态解析。原型生成的类只有在
moduleA
是建的。你需要建立moduleA
至少一次(并在必要时刷新ide导入),以使其生成的代码可访问moduleB
.mctunoxg2#
为了让ide解析类和从从属模块导入,这些类应该存在,并且它们必须位于从属模块的源目录中。看起来类是生成到ide无法识别为源目录的目录中的。尝试将此生成的目录添加为渐变源集。在modulea的gradel构建文件中添加:
哪里
'build/generated/source/proto/main/java'
-生成源的目录。intellij idea有一个相关的问题:idea-209418。