SBT: «Карта значений не является членом (sbt.TaskKey [sbt.Tests.Output], sbt.TaskKey [sbt.Tests.Output])» при обновлении с 0.13.8 до 1.xx - PullRequest
0 голосов
/ 25 июня 2019

У меня ниже плагин sbt-mult-jvm, который отлично работает на sbt версии 0.13.18.

    import com.typesafe.sbt.SbtMultiJvm
    import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys.MultiJvm

    lazy val rootProject = (project in file("."))
    .settings(executeTests in IntegrationTest <<= (executeTests in Test, executeTests in MultiJvm) map {
    case (testResults, multiNodeResults)  =>
        val overall =
        if (testResults.overall.id < multiNodeResults.overall.id)
            multiNodeResults.overall
        else
            testResults.overall
        Tests.Output(overall,
        testResults.events ++ multiNodeResults.events,
        testResults.summaries ++ multiNodeResults.summaries)
    }).
    configs(IntegrationTest, MultiJvm)

Но когда я обновил версию sbt до 1.xx, используя эту миграцию guide

    import com.typesafe.sbt.SbtMultiJvm
    import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys.MultiJvm

    lazy val rootProject = (project in file("."))
    .settings(executeTests in IntegrationTest := (( executeTests in Test, executeTests in MultiJvm).value) map {
    case (testResults, multiNodeResults)  =>
        val overall =
        if (testResults.overall.id < multiNodeResults.overall.id)
            multiNodeResults.overall
        else
            testResults.overall
        Tests.Output(overall,
        testResults.events ++ multiNodeResults.events,
        testResults.summaries ++ multiNodeResults.summaries)
    }).
    configs(IntegrationTest, MultiJvm)

Я получаю ошибку ниже.

    [info] Done updating.
    [warn] There may be incompatibilities among your library dependencies; run 'evicted' to see detailed eviction warnings.
    /Users/rajkumar.natarajan/Documents/Coding/misc/akka-zk-cluster-seed/build.sbt:87: error: `<<=` operator is removed. Use `key := { x.value }` or `key ~= (old => { newValue })`.
    See http://www.scala-sbt.org/1.x/docs/Migrating-from-sbt-013x.html
    settings(compile in MultiJvm <<= (compile in MultiJvm) triggeredBy (compile in IntegrationTest)).
                                ^
    /Users/rajkumar.natarajan/Documents/Coding/misc/akka-zk-cluster-seed/build.sbt:88: error: value map is not a member of (sbt.TaskKey[sbt.Tests.Output], sbt.TaskKey[sbt.Tests.Output])
    settings(executeTests in IntegrationTest <<= (executeTests in Test, executeTests in MultiJvm) map {
                                                                                                    ^
    /Users/rajkumar.natarajan/Documents/Coding/misc/akka-zk-cluster-seed/build.sbt:91: error: value overall is not a member of Any
            if (testResults.overall.id < multiNodeResults.overall.id)
                            ^
    /Users/rajkumar.natarajan/Documents/Coding/misc/akka-zk-cluster-seed/build.sbt:91: error: value overall is not a member of Any
            if (testResults.overall.id < multiNodeResults.overall.id)
                                                        ^
    /Users/rajkumar.natarajan/Documents/Coding/misc/akka-zk-cluster-seed/build.sbt:92: error: value overall is not a member of Any
            multiNodeResults.overall
                            ^
    /Users/rajkumar.natarajan/Documents/Coding/misc/akka-zk-cluster-seed/build.sbt:94: error: value overall is not a member of Any
            testResults.overall
                        ^
    /Users/rajkumar.natarajan/Documents/Coding/misc/akka-zk-cluster-seed/build.sbt:96: error: value events is not a member of Any
            testResults.events ++ multiNodeResults.events,
                        ^
    /Users/rajkumar.natarajan/Documents/Coding/misc/akka-zk-cluster-seed/build.sbt:96: error: value events is not a member of Any
            testResults.events ++ multiNodeResults.events,
                                                ^
    /Users/rajkumar.natarajan/Documents/Coding/misc/akka-zk-cluster-seed/build.sbt:97: error: value summaries is not a member of Any
            testResults.summaries ++ multiNodeResults.summaries)
                        ^
    /Users/rajkumar.natarajan/Documents/Coding/misc/akka-zk-cluster-seed/build.sbt:97: error: value summaries is not a member of Any
            testResults.summaries ++ multiNodeResults.summaries)
                                                    ^
    [error] sbt.compiler.EvalException: Type error in expression
    [error] sbt.compiler.EvalException: Type error in expression

Как я могу устранить эту ошибку?

1 Ответ

0 голосов
/ 25 июня 2019

Ответ находится в ссылке , которую вы предоставляете; в частности, "обогащение кортежей (применить и сопоставить) для TaskKey" было удалено.

Замена должна использовать .value, что устраняет необходимость в карте.

Ваш проект должен выглядеть примерно так (не проверено):

import com.typesafe.sbt.SbtMultiJvm
import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys.MultiJvm

lazy val rootProject = (project in file("."))
  .settings(executeTests in IntegrationTest := {
      val testResults = (executeTests in Test).value
      val multiNodeResults = (executeTests in MultiJvm).value
      val overall = if (testResults.overall.id < multiNodeResults.overall.id)
          multiNodeResults.overall
        else
          testResults.overall
      Tests.Output(overall,
      testResults.events ++ multiNodeResults.events,
      testResults.summaries ++ multiNodeResults.summaries)
    })
  .configs(IntegrationTest, MultiJvm)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...