如何使用 sbt 使用共享 scala 库共享 .proto (protobuf) 文件

How to share .proto (protobuf) files using a shared scala library using sbt

我有一些使用共享 .proto 文件的应用程序。每个应用程序的存储库当前都包含文件的副本,这并不理想,并且最近在它们不小心发生分歧时造成了问题。

我想将 .proto 文件存储在共享库中,这已经是这些应用程序的共同依赖项。我们正在使用 sbt-protoc,它有包含来自外部库的 .proto 文件的文档,但我找不到任何关于如何打包包含它们的库的信息。

.proto 文件位于 src/main/protobuf 中,但未出现在生成的 jar 中,这大概是标准行为。我知道你可以告诉 sbt 包含特定的资源文件,但我不知道我是否错过了使用 sbt-protoc

的方法

要将原型包含在 JAR 中,您可以依靠标准的 sbt 功能,通过添加如下设置:

Compile / unmanagedResourceDirectories += sourceDirectory.value / "protobuf"