Не могу установить версию цинка на 2.12.

У меня есть проект Gradle Scala, в котором я пытаюсь настроить цинк 2.12. Однако когда я пытаюсь запустить проект с помощью команды./gradlew run, я сталкиваюсь сNoClassDefFoundErrorотносится кscala/jdk/javaapi/CollectionConvertersилиThe version of 'scala-library' was changed while using the default Zinc version. Version 2.12.15 is not compatible with org.scala-sbt:zinc_2.13:1.6.1ошибка, если я закомментирую цинк из зависимостей.

Вот как выглядит мой файл Gradle:

      plugins {
    id 'scala'
    id 'application'
}

repositories {
    mavenCentral()
}

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
      if (details.requested.group == 'org.scala-lang') {
        details.useVersion '2.12.15'
      }
    }
}

dependencies {
    // zinc "org.scala-sbt:zinc_2.12:1.6.1"
    implementation 'org.scala-lang:scala-library:2.12.15'
}

application {
    mainClass = 'test.gradle.plugin.App'
}

Я создал проект по репликации этой ошибки, который можно найти здесь .

Я не уверен, как решить эту проблему. Любая помощь будет принята с благодарностью.

1 ответ

См. таблицу совместимости Zinc. Поскольку используется Gradle 7.5, для запуска Zinc требуется Scala 2.13.x. Чтобы иметь возможность компилировать исходные коды Scala 2.12.x, вам необходимо настроить стратегию разрешения плагина Zinc, чтобы он мог использовать Scala 2.13.x следующим образом.

      plugins {
    id 'scala'
    id 'application'
}

repositories {
    mavenCentral()
}

configurations.zinc {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
      if (details.requested.group == 'org.scala-lang') {
        details.useVersion '2.13.11'
      }
    }
}

dependencies {
    implementation 'org.scala-lang:scala-library:2.12.15'
}

application {
    mainClass = 'test.gradle.plugin.App'
}
Другие вопросы по тегам