#scala #build #sbt
Вопрос:
Я создал простой проект Scala для использования с зависимостью apache commons-math4. Содержимое файла build.sbt выглядит следующим образом.
name := "math4test"
version := "0.1"
scalaVersion := "3.0.2"
resolvers = ("apache_snapshots" at "https://repository.apache.org/content/repositories/snapshots/").withAllowInsecureProtocol(true)
libraryDependencies = "org.apache.commons" % "commons-math4" % "4.0-SNAPSHOT"
Sbt не удается разрешить ряд зависимостей для math4:
[error] (update) sbt.librarymanagement.ResolveException: Error downloading org.apache.commons:commons-numbers-rootfinder:1.0-SNAPSHOT
[error] Not found
Комментарии:
1. Вы действительно хотите зависеть от версий моментальных снимков?!
Ответ №1:
Вы не должны полагаться на зависимости МОМЕНТАЛЬНЫХ снимков: они нестабильны, не обеспечивают воспроизводимую сборку и не хранятся вечно в репозиториях.
На момент написания этого ответа последняя опубликованная версия 4.0-SNAPSHOT
commons-math4 зависит от версии 1.0-SNAPSHOT
commons-numbers-rootfinder, которая больше недоступна ( 1.1-SNAPSHOT
существует: https://repository.apache.org/content/repositories/snapshots/org/apache/commons/commons-numbers-rootfinder/).
Комментарии:
1. Я слышал, что многие программисты перешли на math4, который доступен только в виде моментального снимка. Я думаю, что пока мне следует придерживаться math3.
2. @отметьте, если ответ вас устраивает, вы можете отметить его как принятый 😉