2017-01-16 2 views
3

Я пытаюсь создать свой исходный код Scala с таргетингом SBT тот же версия Scala, но разные версии библиотек. Мои вопросы:Построение для разных версий библиотеки с помощью SBT

  1. Поддерживает ли SBT это? (кажется маловероятным)
  2. Если нет, есть ли способ достичь этого, не слишком сильно запуская скрипт сборки?

Детали: Я строю для кластеров с различными версиями Спарк и других библиотек. Это похоже на общий случай пользователя в таком сценарии.

Возможные решения, которые я нашел:

  1. Используйте различные мелкие версии Scala, а затем рассылать различные версии библиотеки с кросс-здания. Очень хаки.
  2. Используйте фиктивные каталоги для нескольких проектов, перенаправляя их пути к исходному каталогу. Это кажется наиболее перспективным, но я еще не пробовал.

ответ

0

Нет sbt не поддерживает это, но если вы хотите это сделать, вы можете использовать затенение. нравится, если я хочу использовать две разные версии guava, которые поддерживались двумя разными библиотеками, затем используйте затенение guava, например:

assemblyShadeRules in assembly := Seq(
    ShadeRule.rename("com.google.guava**" -> "[email protected]").inAll 
    ) 
Смежные вопросы