使用基于文件的存储库离线使用 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的离线补丁升级包

Ubuntu批量安装离线安装python的pycrypto库

SBT为超级罐编译

Excel Foundation Install