Как указать несколько домов Java через конфигурацию sbt?

Я хочу протестировать один и тот же код с разными версиями JVM, используя плагин JMH и sbt-jmh. Чего я хотел бы добиться, так это иметь возможность запускать команду в оболочке sbt, например Corretto11 / Jmh / run (или что-то подобное), который будет использовать Amazon Corretto 11 JVM (или любой другой определенный) для моих тестов JMH.

Вот что у меня есть в моей конфигурации sbt:

      import pl.project13.scala.sbt.JmhPlugin.JmhKeys.Jmh

lazy val Corretto11 = config("corretto11") extend Jmh
lazy val Zulu11 = config("zulu11") extend Jmh

lazy val myProject = project
  .enablePlugins(JmhPlugin)
  .configs(Corretto11, Zulu11)
  .settings(
    scalaVersion := "2.13.7",
    fork := true,
    Corretto11 / javaHome := Some(file("path/to/corretto-11.0.14")),
    Zulu11 / javaHome := Some(file("path/to/azul-11.0.14"))
  )

Эта конфигурация позволяет мне использовать Corretto11 / run для запуска тестов JMH, но он по-прежнему использует Java, которая использовалась для запуска sbt вместо той, которая указана через Corretto11 / javaHome. Только указание javaHome без Corretto11 / работает как положено и работает Jmh / runиспользует правильную JVM для компиляции и запуска приложения. Я не хочу менять его вручную каждый раз, когда пытаюсь запустить тест. я тоже не хочу бегать sbt -java-home ... команда для каждого теста.

0 ответов

Другие вопросы по тегам