Как бороться с выселением библиотеки при написании плагина sbt?

Я пытаюсь написать простой плагин sbt, который использует jsch. Из соображений безопасности (ecdsa) я требую использовать jsch в 0.1.53. Я объявил зависимость в моем файле build.sbt:

libraryDependencies += "com.jcraft" % "jsch" % "0.1.53"

К сожалению, org.scala-sbt:ivy 2.3.0 вводит зависимость от 0.1.46. SBT говорит, что было вытеснение старой версии, хотя во время выполнения при использовании моего плагина я вижу, что он все еще работает с 0.1.46 jsch.

[info]  com.jcraft:jsch
[info]      - 0.1.46
[info]          status: release
[info]          publicationDate: Thu Feb 02 13:39:27 CET 2012
[info]          resolver: sbt-chain
[info]          artifactResolver: sbt-chain
[info]          evicted: true
[info]          evictedData: latest-revision
[info]          homepage: http://www.jcraft.com/jsch/
[info]          isDefault: false
[info]          configurations: default, compile, runtime, default(compile), master
[info]          licenses: (Revised BSD,Some(http://www.jcraft.com/jsch/LICENSE.txt))
[info]          callers: org.scala-sbt:ivy:0.13.11
[info]      - 0.1.53
[info]          status: release
[info]          publicationDate: Fri Jun 05 17:32:00 CEST 2015
[info]          resolver: sbt-chain
[info]          artifactResolver: sbt-chain
[info]          evicted: false
[info]          homepage: http://www.jcraft.com/jsch/
[info]          isDefault: false
[info]          configurations: default, compile, runtime, default(compile), master
[info]          licenses: (Revised BSD,Some(http://www.jcraft.com/jsch/LICENSE.txt))
[info]          callers: com.evojam:sbt-ssh:0.1.1-SNAPSHOT (scalaVersion=2.10, sbtVersion=0.13), org.scala-sbt:ivy:0.13.11

Я использую sbt версии 0.13.11.

Я добавил свой плагин в тестовый проект. При запуске моей задачи sbt я получаю четкое сообщение журнала: [info] Строка локальной версии: SSH-2.0-JSCH-0.1.46 и ошибка о неподдерживаемом алгоритме, которая приводит меня к выводу, что моя версия jsch была каким-то образом переопределена.

Вопрос в том, как бороться с выселением библиотеки при написании плагина sbt?


person ar2r    schedule 11.05.2016    source источник


Ответы (1)


Может быть, вы могли бы попробовать с:

dependencyOverrides += "com.jcraft" % "jsch" % "0.1.53"

Но я подозреваю, что версия jsch для sbt загружается в путь к классам jvm перед вашим плагином.

Существует проблема с обновлением sbt до ivy 2.4; это также обновит используемую версию jsch: https://github.com/sbt/sbt/issues/1920

person Olivier Samyn    schedule 11.05.2016
comment
К сожалению, это не работает. Я был бы рад увидеть Ivy 2.4 с обновленным jsch, хотя это может занять некоторое время. - person ar2r; 12.05.2016