为啥 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 作为共享库?