scala - Gradle + Scala Plugin + Zinc 1.3.5 将 Protobuf 3.7 泄漏到编译器类路径
问题描述
在将 Scala 项目升级到 Gradle 6 和 Zinc 1.3.5 后调试生成的 Protobuf 代码的编译错误时,我发现编译器类路径包含两个版本的 protobuf jar - 我需要的一个 (3.9.x) 和 3.7。后者是锌的依赖性。
在 Gradle 中运行 Zinc Scala 构建而不会将其自身的依赖项泄漏到类路径的正确方法是什么?
解决方案
这已通过 sbt/zinc PR 799解决,该 PR 799已合并并包含在 Zinc 的 1.4.0 版本中。
有了这个 MR,他们开始对 protobuf 依赖项进行着色(参见这个提交)。
不幸的是,目前无法将此版本的 Zinc 与 Gradle 一起使用,因为 Gradle 问题#15491从未得到解决(注意问题标题提到了 Zinc 1.4.3,但适用于 1.3.x 系列之后的所有 Zinc 版本)。
看起来没有任何解决 #15491 的计划,但看起来问题将作为 PR 18001 的副作用得到解决,PR 18001正在积极开发中,旨在为 Gradle 添加 Scala 3 支持(并且还涉及清理各种长期存在的问题类路径相关问题)。
推荐阅读
- python - python 属性设置器参数的类型注释应该是什么?
- sqlite - 烧瓶会话cookie
- node.js - 无法使用 express 获取我的实际公共 IP
- google-cloud-functions - 不同项目中的云存储桶触发云功能
- matlab - 为什么带有 fitcsvm 的 SMO 求解器需要比 L1-QP 求解器更长的时间才能收敛到 MATLAB 中较大的 BoxConstraint (C) 值?
- amazon-web-services - aws s3 cp 从 jenkins 工作区到不同 aws 帐户上的 ec2 工作区
- amazon-web-services - 如何在 Cloud9 IDE 中预览 HTML/CSS 文件?
- powershell - PowerShell中的数据操作\重复数据删除
- typescript - 有人可以帮我自动化多用户用例在量角器中吗?
- java - Appium测试无法识别Opencv4nodejs