【问题标题】:Scala-reflect not found未找到 Scala 反射
【发布时间】:2021-01-05 10:02:46
【问题描述】:

我有一个基于 Kotlin 的 Gradle 项目,我在其中使用 Scala。我所有的依赖项都来自内部存储库,所以我不能使用任何 Scala 版本,只能使用可用的版本。
因此,我有以下依赖项列表:

plugins {
  java
}
//...
apply(plugin = "scala")
//...
dependencies {
  implementation("org.scala-lang.scala-reflect:2.12.5")
  compileOnly("org.scala-lang.scala-library:2.12.9") {
    exclude("org.scala-lang.scala-reflect")
}

在纸上它应该可以工作 - 我定义了内部连接上可用的依赖项。

但是,当我尝试构建项目时,出现以下错误:

Execution failed for task ':compileScala'.
> Could not resolve all files for configuration ':zinc'.
  > Could not find scala-reflect-2.12.10.jar (org.scala-lang.scala-reflect:2.10.10).
    > Searched in the following locations:
      <nexus_url>

是不是因为scala插件?


更新 我检查了错误是否发生,因为我拥有的 Zinc 版本是基于 Scala 2.12.10 构建的。并且由于该版本在 nexus 上不可用,因此无法运行。 有没有办法改变 Zinc 使用的 Scala 版本?

【问题讨论】:

  • 我猜你添加的排除将无效,因为 scala-reflect 依赖于 scala-library 而不是相反:github.com/scala/scala/blob/2.13.x/build.sbt#L423 你为什么不使用相同的版本?跨度>
  • 是的,你是对的。我已经删除了排除项。但是,还是会出现同样的错误。
  • 你没有回答我的其他问题。为什么不使用相同版本的 Scala 库和 Scala 反射?
  • 试着找出那个 10 后缀是从哪里来的。我猜它是你的 gradle 文件的一部分。
  • @mfirry 是的,更改 Zinc 版本解决了我的问题。

标签: scala gradle


【解决方案1】:

搜索完 Gradle Scala 插件文档 (https://docs.gradle.org/current/userguide/scala_plugin.html#sec:configure_zinc_compiler) 我找到了解决办法。
我必须做的是更改 Zinc 版本:

scala {
  zincVersion.set("1.3.1")
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多