3

假设我有一个项目,我曾经在其中sbt publish-local生成 .jar 文件的本地副本~/.ivy2/local

同一台机器上的另一个 sbt 项目可以成功定位这些 jar 以满足依赖关系。但是,如果在那个项目中我使用 option retrieveManaged := true,sbt 永远不会将 jar 复制~/.iv2/locallib_managed目录中。

我怎样才能做到这一点?(这种行为是有意的吗?)

(我使用的是 sbt 0.12.1。)

4

1 回答 1

2

我正在使用相同的设置。当我更新本地发布的依赖项时,我首先删除托管 jar,然后运行更新:

$ rm -r lib_managed/jars/my-package-prefix
$ sbt test:compile

test:compile将找出罐子丢失并update自行完成)。

在旧版本的 sbt 中,我相信在使用-SNAPSHOT版本时会出现问题,但在 sbt 0.12 中我再也没有看到这个问题。

在极少数情况下,Ivy 缓存会出现问题,因此您无法强制执行更新。当使用损坏的 Ivy 元数据文件时,可能就是这种情况。~/.ivy2/local然后唯一的解决方案是从and中擦除所有出现的依赖~/.ivy2/cache项,重新发布并重新更新。

于 2013-01-21T21:51:28.200 回答