如何修改ScalaPB扫描protobuf文件的默认路径?
ScalaPB多模块项目protobuf路径配置方案
默认情况下ScalaPB仅会扫描根项目下的src/main/protobuf目录,多包(多模块)场景下需要手动修改PB.protoSources配置项,将子模块的protobuf路径加入扫描范围,两种常用配置方式如下:
全局统一适配所有子模块
直接在根目录的build.sbt中添加如下配置,自动遍历所有子模块的protobuf路径:
Compile / PB.protoSources ++= (ThisBuild / loadedBuild).value.allProjects .map(_.base / "src" / "main" / "protobuf")
单个子模块单独配置
如果是显式声明的子模块,可在对应子模块的配置中单独指定路径:
lazy val `你的包名` = (project in file("你的包名")) .settings( // 加入当前子模块的protobuf扫描路径 Compile / PB.protoSources += baseDirectory.value / "src" / "main" / "protobuf", // 其他子模块配置项 )
- 如果需要适配测试环境的protobuf文件,将上述配置中的
Compile替换为Test即可 - 配置修改完成后执行
sbt clean compile验证,生成的Scala代码默认存放在target/scala-[版本号]/src_managed/main目录下
内容的提问来源于stack exchange,提问作者baron
相关产品推荐
相关产品推荐

