2015-05-20 2 views
5

На Play 2.3, игра добавляется как SBT плагин следующим образом в моем Build.scala следующим образом:Playframework переопределение 2.3.9 зависимость

Project("root", file(".")).enablePlugins(play.PlayScala) 

также посмотреть на documentation.

мне нужен конкретный dependeny обновленный, а именно Fluentlenium (Play 2.3.9 до сих пор использует 0.9.3):

"org.fluentlenium" % "fluentlenium-core" % "0.10.3" 

Как я могу заменить старую версию и заменить его на более новую? Просто добавив библиотеку в libraryDependencies, я оставляю обе версии в пути к классу.


Edit: После того, как рыть немного глубже, кажется, как будто (новый?) Особенность dependencyOverrides, которая поставляется с SBT 13.8 может быть решение:

Overriding a version. Но также взгляните на Conflict Management из той же документации.

С помощью этого вы можете переопределить отдельные зависимости, что означает, что вам необходимо переопределить каждую зависимость транзита вручную.

+0

Просто удалить уже существующие fluentlenium 0.9.3 в локальной папке хранилища и повторите попытку – Sivailango

+0

Это не так, как это работает, боюсь. – mana

ответ

1

Просто добавление библиотеки в libraryDependencies оставляет меня с обеими версиями в пути класса.

Уверены ли вы в этом? sbt (Ivy) должен вытеснить более старый, если в одной конфигурации есть несколько версий.

В большинстве случаев

libraryDependencies += "org.fluentlenium" % "fluentlenium-core" % "0.10.3" 

должна быть в порядке, доказанном, что 0.9.x двоично совместим с 0.10.x. Если вы хотите, чтобы убедиться, что он будет перезаписан при разрешении зависимостей транзитивной, dependencyOverrides может быть путь:

dependencyOverrides += "org.fluentlenium" % "fluentlenium-core" % "0.10.3"