如何配置SBT使用本地安装的protoc编译Scala项目
解决protoc-jar无法下载osx-aarch_64版本protoc 3.7.1的问题
问题根源
protoc 3.7.1发布时Apple Silicon(aarch_64)架构还未推出,官方没有适配该架构的预编译包,所以protoc-jar自动下载时会找不到对应版本报错。你已经通过Homebrew安装了本地protoc,只需配置SBT优先使用本地版本即可。
具体配置方案
以下几种方式任选其一即可:
1. 项目build.sbt中配置(推荐,仅当前项目生效)
如果项目使用sbt-protoc插件,在build.sbt里添加:
PB.protoc := "/opt/homebrew/bin/protoc"
如果是直接依赖protoc-jar,可在build.sbt里开启fork模式并设置系统属性:
fork := true javaOptions += "-Dprotoc.path=/opt/homebrew/bin/protoc"
2. 启动SBT时临时指定(单次生效)
执行命令时直接传入参数:
sbt -Dprotoc.path=/opt/homebrew/bin/protoc runMain Project
3. 全局配置(所有SBT项目生效)
在~/.sbt/1.0/global.sbt文件中添加以下内容(没有该文件就新建):
sys.props("protoc.path") = "/opt/homebrew/bin/protoc"
配置完成后再执行sbt runMain Project,就能正常使用本地安装的protoc了。
内容的提问来源于stack exchange,提问作者lollerskates
相关产品推荐
相关产品推荐

