如何为SBT设置本地代理存储库?

时间:2012-03-23 00:49:36

标签: scala maven sbt ivy

我对Maven / Ivy知之甚少,但我知道这些技术是SBT自动下载和管理库的能力的原因。

当我尝试从SBT生成IntelliJ Idea项目时(Idea或生成器插件)未能找到存储在常见Ivy 2缓存中的缓存库。我已经通过设置SBT项目来解决问题,以使用在项目目录下存储已下载库的旧方案。我的另一个项目使用旧的SBT版本,默认情况下这样做。在这两种情况下,我都会使用clean命令在备份之前删除库二进制文件,并在再次下载所有库之后使用update。这意味着我多次下载相同的库文件。

问题是如何设置本地存储库来缓存库,以便SBT更新将从本地缓存中下载库(如果可用)?如果可能的话,最好使用现有的~/.ivy2/cache目录作为缓存。

当你至少掌握了Ivy 2的基本知识时,我倾向于认为这可能相当简单。

1 个答案:

答案 0 :(得分:3)

伊万,这可能会有所帮助。

sbt
> deliver-local
[info]  delivering ivy file to /.../target/scala-2.9.1/ivy-1.0.xml

然后,您需要找到IntelliJ等效步骤,但在Eclipse中,您可以使用IvyDE plugin提供的附加库“IvyDE Managed Dependencies”来配置构建路径

1) browse to the target/scala-version/ivy-1.0.xml file
2) select desired configurations (compile, runtime, test, provided, etc.)

现在你有一个常春藤代表你的sbt配置。

这有一个令人讨厌的例外:在“sbt clean”上,常春藤配置文件被吹走了,你必须重复上述内容。 Eclipse项目清理保留了常春藤配置,顺便说一句。

如果此方法可以应用于IntelliJ

,请继续发布