使用基于文件的存储库离线使用 SBT
Posted
技术标签:
【中文标题】使用基于文件的存储库离线使用 SBT【英文标题】:Use SBT offline with file based repository 【发布时间】:2014-05-22 20:44:06 【问题描述】:我需要在离线环境中使用 sbt,但我可以将文件系统上所有必要的 jar 暂存为本地存储库。我如何定义 ~/.sbt/repositories 以便它检查本地文件系统是否有 sbt(和我的项目)需要的 jars?对于奖励积分,设置基于本地文件的存储库的最简单方法是什么?
【问题讨论】:
【参考方案1】:在http://www.scala-sbt.org/release/docs/Detailed-Topics/Proxy-Repositories.html都有解释
简而言之,您必须将其放入 ~/.sbt/repositories
[repositories]
local
sharedRepo: file:///path/to/my/shared/repo/.m2/repository
并使用 -Dsbt.override.build.repos=true
调用 sbt(或 play/activator)
这将确保仅使用本地和共享存储库来解决依赖关系。
确保本地存储库包含您需要的 jar 的最简单方法是删除 ~/.sbt/repositories 文件并在在线时对项目执行sbt update
(没有 -Dsbt.override.build.repos =true 参数)。之后恢复 ~/.sbt/repositories 文件,所有解析都将仅从您的本地存储库完成。
要设置私有存储库,请查看 artifactory,它有一个足以用于 maven 存储库的开源版本。
http://www.jfrog.com/home/v_artifactory_opensource_overview
【讨论】:
这并不能回答我的问题:我不只是想使用本地 .ivy2 缓存——我想检查文件系统中的存储库。例如,文件系统可以通过 nfs 挂载存储库——但本地 ivy2 缓存是本地安装所在的位置,因此不能在用户之间共享。 如果检查文件系统意味着积极搜索存储库,我认为这是不可能的。必须在文件中指定确切的存储库 url/文件位置。我更新了答案以显示如何在 ~/.sbt/repositories 文件中指定自定义存储库。以上是关于使用基于文件的存储库离线使用 SBT的主要内容,如果未能解决你的问题,请参考以下文章
使用 org.apache.hadoop/* 依赖项离线编译 sbt 的问题
如何制作windows server 2012的离线补丁升级包