假设我有一个项目,我曾经在其中sbt publish-local
生成 .jar 文件的本地副本~/.ivy2/local
。
同一台机器上的另一个 sbt 项目可以成功定位这些 jar 以满足依赖关系。但是,如果在那个项目中我使用 option retrieveManaged := true
,sbt 永远不会将 jar 复制~/.iv2/local
到lib_managed
目录中。
我怎样才能做到这一点?(这种行为是有意的吗?)
(我使用的是 sbt 0.12.1。)
我正在使用相同的设置。当我更新本地发布的依赖项时,我首先删除托管 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
项,重新发布并重新更新。