тип scala.collection.generic.GenericTraversableTemplate отсутствует в пути к классам - PullRequest
0 голосов
/ 07 июля 2019

Я пытаюсь использовать два ParRanges (Parallel Ranges) в Scala 2.13.0 для выполнения произвольной операции, но мне, похоже, не хватает некоторой зависимости, и я не уверен, что это такое.

Я разрабатываю игру в 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, чтобы использовать параллельные коллекции.

Согласно ScalaDocs для 2.12.1, все они должны существовать: см. https://www.scala -lang.org / api / 2.12.1 / scala / collection / generic / GenericTraversableTemplate.html

Однако ScalaDocs для 2.13.0 показывают, что все они отсутствуют: см. 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?

1 Ответ

0 голосов
/ 07 июля 2019

Почему параллельные коллекции для 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, несмотря на номер версии.

...