为啥 scala-compiler.jar 作为库包含在我的人工制品中

Posted

技术标签:

【中文标题】为啥 scala-compiler.jar 作为库包含在我的人工制品中【英文标题】:Why is the scala-compiler.jar included as library in my artefact为什么 scala-compiler.jar 作为库包含在我的人工制品中 【发布时间】:2021-05-04 00:09:03 【问题描述】:

当我用

构建一个人工制品时

sbt universal:packageZipTarball

scala-compiler.jar 作为库包含在我的人工制品中。

    为什么在运行时需要 scala 编译器?据我了解,它不应该是必需的。 如何排除这个 jar?

【问题讨论】:

您的依赖项之一可能依赖于它。例如在运行时解释一些代码。 如果它在那里,我不建议排除它,因为@Jasper-M 提到了什么。 【参考方案1】:

它可能被您的libraryDependencies 之一作为传递依赖项引入。你可以使用这个 sbt 插件来找出是哪一个: https://github.com/sbt/sbt-dependency-graph

一旦发现,您可以通过将exclude("org.scala-lang", "scala-compiler") 附加到相关依赖项来阻止它。 例如,旧版本的 pureconfig 库用于错误地拉入此依赖项。可以像这样修复它:

libraryDependencies +=
  "com.github.pureconfig" %% "pureconfig" % "0.10.0" exclude("org.scala-lang", "scala-compiler")

【讨论】:

以上是关于为啥 scala-compiler.jar 作为库包含在我的人工制品中的主要内容,如果未能解决你的问题,请参考以下文章

为啥不建议将 Eclipse 项目文件夹作为 Git 存储库?

Linux - 为啥我的可执行文件将 libpthread 作为共享库?

为啥数学库经常被 FLOPS 比较?

为啥 'lsof' 在 macOS 上省略了系统库?

为啥 Gitlab 无法从本地网络导入存储库,状态码为 128?

构建一个 JavaScript 库,为啥要以这种方式使用 IIFE?