Я создаю несколько проектов Java с помощью sbt 0.13. Проект A публикует библиотеку «abc» в $HOME/maven2.artifacts/www/x/y/abc/1.0.1/abc-1.0.1.jar с задачей по умолчанию «публикация sbt». Работает, библиотека есть, как положено.
Проект B зависит от этого артефакта. Он объявляет преобразователь (весь код из build.sbt):
resolvers ++= Seq(
"Developer's repo" at "file://"+Path.userHome.absolutePath+"/maven2.artifacts/www"
)
...и значение для ссылки:
val abc_core = "x.y" % "abc" % "1.0.1"
Затем он использует ссылку в определении проекта:
lazy val def_symbol=project settings(
name:="def-symbol",
libraryDependencies += abc_core
)
Это работает. Однако, когда я изменяю определение значения, чтобы использовать динамический идентификатор версии, как предлагает документация sbt, установив для него значение
val abc_core = "x.y" % "abc" % "1.0.+"
or
val abc_core = "x.y" % "abc" % "1.+"
больше не работает:
[warn] module not found: x.y#abc;1.+
[warn] ==== local: tried
[warn] /home/dh/.ivy2/local/x.y/abc/[revision]/ivys/ivy.xml
[warn] ==== public: tried
[warn] http://repo1.maven.org/maven2/x/y/abc/[revision]/abc-[revision].pom
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: x.y#abc;1.+: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
Я вижу, что sbt, похоже, не спрашивал у моего файлового распознавателя зависимость. В этом проблема? Как я могу это решить?