我试图在Scala 2.13.0中使用两个ParRanges(平行范围)来执行任意操作,但是我似乎缺少一些依赖关系,并且不确定它是什么。
我正在IntelliJ IDEA Ultimate 2019.1.3中使用Libgdx框架v1.9.9和Gradle进行依赖项管理在Scala 2.13.0中开发游戏
我的全局库中有Scala 2.13.0 SDK,并且已在build.gradle中将这些依赖项(以及其他依赖项)导入到我的项目中:
<... rest of build.gradle file above>
project(":desktop") {
apply plugin: "java"
apply plugin: "scala"
dependencies {
compile "org.scala-lang:scala-library:2.13.0"
<other dependencies>
}
}
project(":core") {
apply plugin: "java"
apply plugin: "scala"
dependencies {
compile "org.scala-lang:scala-library:2.13.0"
compile "org.scala-lang.modules:scala-parallel-collections_2.13.0-M2:1.0.2"
<other dependencies>
}
}
<... rest of build.gradle file below>
有问题的示例代码为:
ParRange(0, Width, 1, true).foreach(x => {
ParRange(0, Height, 1, true).foreach(y => {
pixmap.setColor(Math.random().toFloat, Math.random().toFloat, Math.random().toFloat, 1)
pixmap.drawPixel(x, y)
})
})
当我尝试运行程序时,出现了一些相同的运行时错误:
Error:(29, 27) Symbol 'type scala.collection.generic.GenericTraversableTemplate' is missing from the classpath.
This symbol is required by 'trait scala.collection.generic.GenericParTemplate'.
Make sure that type GenericTraversableTemplate is in your classpath and check for conflicting dependencies with `-Ylog-classpath`.
A full rebuild may help if 'GenericParTemplate.class' was compiled against an incompatible version of scala.collection.generic.
ParRange(0, Width, 1, true).foreach(x => {
还缺少:
'type scala.collection.GenIterableLike'
'type scala.collection.Parallel'
'type scala.collection.GenSeqLike'
'type scala.Immutable'
我花了很长时间才能弄清楚我应该在build.gradle中导入什么依赖项以使用并行集合。
根据2.12.1的ScalaDocs,这些都应该存在:请参见https://www.scala-lang.org/api/2.12.1/scala/collection/generic/GenericTraversableTemplate.html
但是,针对2.13.0的ScalaDocs显示所有这些都缺失:请参见https://www.scala-lang.org/api/2.13.0/scala/collection/generic/index.html
为什么Scala 2.13.0的并行集合依赖于Scala 2.12.1中存在的类和特征而不是Scala 2.13.0中存在的类和特征?
答案 0 :(得分:0)
为什么Scala 2.13.0的并行集合依赖于Scala 2.12.1中存在的类和特征而不是Scala 2.13.0中存在的类和特征?
因为它不是适用于2.13的版本,所以适用于2.13.0-M2(仍然有它们)。 https://mvnrepository.com/artifact/org.scala-lang.modules/scala-parallel-collections显示该版本的日期为2017年,尽管版本号为0.2.0是2.13的实际最新版本。