Я докционирую свою игру! Framework, и в настоящее время моя сборка занимает более 15 минут. Большая часть процесса, это фактически загрузка зависимостей, потому что у моего разработчика еще нет понятия кэшей. Я подумал, было бы неплохо скопировать все зависимости, которые нужны моему проекту, в локальную папку, чтобы она не загружала все снова и снова. Однако проблема в том, что я не знаю, как это сделать? Я знаю, что у SBT есть функция, которая позволяет указать локальное репо, но я не знаю о функциональности, которая позволяет мне копировать все в определенную папку.Скопируйте все зависимости SBT к локальной папке
ответ
Обновлено (2015-07-13):
ОК, так что вы хотите, сохраняя все зависимости в папке, которую вы хотите, вы можете попробовать это при запуске SBT,
sbt -Dsbt.ivy.home=/your/local/path/.ivy
Затем он сохранит все файлы зависимостей или любые файлы, загруженные для создания вашего приложения, в /your/local/path/.ivy/cache
.
Если вы хотите, чтобы держать их в своем проекте,
sbt -Dsbt.ivy.home=/some/path/to/your-project/.ivy
Затем файлы будут сохранены в папке /some/path/to/your-project/.ivy/cache
.
Кстати, докер не поддерживает кеш? Хммм, почему бы вам не попробовать какой-нибудь хороший сервис CI, например Semaphore CI, и позволить ему развернуть приложение до Docker? (У меня нет ни личного, ни другого подключения к Семафору. Это просто сервис, который я использую, и я попробовал около пяти различных инструментов CI и, как этот, самый).
Обновлено (2015-07-12): О, извините, ваш вопрос заключается не в использовании локального репо, а в копировании всего на него.
Возможно, это не совсем то, что вы просили, но, возможно, можете решить вашу проблему.
updateOptions := updateOptions.value.withCachedResolution(true)
Примечание: Это экспериментальная функция.
Детали: sbt doc - Cached-Resolution
======================================= ========
вы можете указать репозиторий
resolvers += name at location
Как
resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots"
Так что для местного Maven репо, вы можете просто сделать
resolvers += Resolver.mavenLocal
Однако, в моем случае, когда я это сделал, он попытался получить доступ к PROJECT_HOME/{user.home}/.m2/repository
, что является неправильным.
Я хотел был $HOME/.m2/repository
, который является местоположением локального хранилища maven. Поэтому я помещаю следующую строку в build.sbt
вместо Resolver.mavenLocal
, и, похоже, она работает.
resolvers += "mavenLocal" at s"${sys.props("user.home")}/.m2/repository"
Детали: sbt doc - Library-Dependencies
Try SBT пакет плагинов https://github.com/xerial/sbt-pack имеет packCopyDependencies задачу. Возможно, именно это вы ищите.
- 1. Скопируйте зависимости градиента к файлу
- 2. Как я могу перечислить все зависимости sbt?
- 3. SBT добавив дополнительный тег к хранилищу зависимости
- 4. SBT игнорируя библиотека зависимости
- 5. Скопируйте определенные файлы в SBT
- 6. Скопируйте зависимость зависимости Gradle к другой зависимости от Gradle
- 7. Доступ к общей локальной папке с html
- 8. sbt только зависимости выборки
- 9. sbt неразрешенные транзитивные зависимости
- 10. Как разместить зависимости Ruby в локальной папке проекта
- 11. Скопируйте один файл во все папки в папке?
- 12. SBT зависает разрешающие зависимости
- 13. SBT вопрос нерешенной зависимости
- 14. SBT Нерешенные Зависимости
- 15. Скопируйте таблицу и зависимости
- 16. версия для прикрепления к папке с sbt/ivy
- 17. npm install в определенной локальной папке
- 18. Создание каталогов на локальной папке
- 19. Sbt сборка не включает в себя все зависимости библиотеки
- 20. Есть ли способ получить все зависимости проекта через sbt-плагин?
- 21. SBT не разрешает все зависимости для PlayFramework 2.4.2
- 22. Плагин SBT для вашей локальной машины
- 23. Непереходные зависимости с узлом sbt
- 24. тест SBT набирает путь к папке неправильно ресурсов
- 25. SBT - неразрешенные зависимости в mapnik2geotools
- 26. Sbt неразрешенные зависимости недопустимый символ
- 27. тест Sbt пробега в зависимости
- 28. Зависимости Jenkins от зависимостей sbt?
- 29. Внешние зависимости для пакетов sbt
- 30. Как найти неиспользуемые зависимости sbt?
Я не видел никаких функций, которые позволяют мне полностью загрузить все зависимости. Это то, что мне нужно. Еще спасибо за ответ. – Martijn
@MartijnR Ну, я делаю это в build.sbt 'resolvers + =" mavenLocal "at s" $ {sys.props ("user.home")} /. M2/repository ", и он, похоже, не загружает зависимостей libs снова, когда он находит их в 'mavenLocal'. –
Да, проблема есть. Я использую докер, что означает, что кеш не сохраняется. И было бы глупо копировать весь мой кеш maven, потому что он содержит много несвязанных вещей. :( – Martijn