【发布时间】: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 版本解决了我的问题。