Мы хотим использовать внутренний репозиторий ivy/maven (artifactory) компании, чтобы улучшить скорость решения и загружать файлы jar, а также мы хотим использовать его для обмена двоичными файлами jar между различными командами в нашей организации.
Я знаю, что мы можем заставить SBT пройти через прокси, установив ~/.repositories
с помощью
[repositories]
local
my-ivy-proxy-releases: http://repo.alpinenow.com/artifactory/repo/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
my-maven-proxy-releases: http://repo.alpinenow.com/artifactory/repo/
а затем запустите SBT с помощью -Dsbt.override.build.repos=true
. Этот метод работает для меня.
Однако, это довольно громоздко просить всех разработчиков настроить этот путь. Нам интересно, можем ли мы полностью переопределить дескрипторы по умолчанию в Build.scala и plugin.sbt без дополнительной настройки.
До сих пор я пробовал следующие пути без успеха.
1) Как в Build.scala, так и в plugin.sbt, я добавил
resolvers := "Local Repo" at "http://repo.alpinenow.com/artifactory/repo/",
externalResolvers := Seq(Resolver.url("Local Repo", url("http://repo.alpinenow.com/artifactory/repo"))(Resolver.ivyStylePatterns)),
но он по-прежнему загружает банки из typesafe и maven1.
2) Затем я решил поместить файл репозитория в папку проекта и попытался добавить опцию java непосредственно внутри plugin.sbt и Build.scala с
System.setProperty("-Dsbt.override.build.repos", "true"),
System.setProperty("-Dsbt.repository.config", "project/repositories"),
но он по-прежнему не работает. Мне любопытно, когда SBT получает java-параметры для преобразователей, поскольку, очевидно, это перед plugin.sbt и Build.scala.
Любая идея?
Спасибо.
DB Tsai