我从未能够在任何项目中离线使用SBT。现在我正在搬家,我的wardrobe-server托管的nexus处于离线状态。
所以运行以下命令:
sbt "set offline := true" run
我得到了其他缺失的依赖项:
[error] unresolved dependency: se.hedefalk#lift-utils_3.0_2.10;0.2-SNAPSHOT: not found
依赖项声明如下:
"se.hedefalk" %% ("lift-utils_"+liftEdition) % ("0.2-SNAPSHOT"),
但我在我的Ivy缓存中确实有这个依赖项:
$ ll ~/.ivy2/cache/se.hedefalk/lift-utils_3.0_2.10/
total 32
drwxr-xr-x 8 viktor staff 272B Mar 14 11:36 ./
drwxr-xr-x 5 viktor staff 170B Mar 8 10:38 ../
drwxr-xr-x 3 viktor staff 102B Mar 14 11:36 docs/
-rw-r--r-- 1 viktor staff 4.5K Mar 4 15:54 ivy-0.2-SNAPSHOT.xml
-rw-r--r-- 1 viktor staff 4.0K Mar 4 15:54 ivy-0.2-SNAPSHOT.xml.original
-rw-r--r-- 1 viktor staff 1.8K Mar 14 11:36 ivydata-0.2-SNAPSHOT.properties
drwxr-xr-x 3 viktor staff 102B Mar 8 10:38 jars/
drwxr-xr-x 3 viktor staff 102B Mar 14 11:36 srcs/
这难道不足够了吗?对我来说,整个"offline := true"设置从未有过任何区别。依赖关系似乎在之前就已经发生了。
我现在真的需要让它工作起来。我遇到了这个问题多年,但现在我处于完全无法工作的情况。
在这里:http://www.scala-sbt.org/0.13.5/docs/Detailed-Topics/Dependency-Management-Flow.html
我阅读到:
当 offline:= true时,远程快照将不会被解析更新,即使显式请求更新也是如此。这应该有效地支持在没有连接到远程存储库的情况下工作。如果有反例请提供可以复现的示例。显然,在转为离线模式之前必须成功运行更新。
我可能没有正确理解,但是它是否意味着我不应该遇到我目前的问题?
我使用相同的方法时也遇到了同样的问题:
> sbt "skip in update := true" run
使用sbt 0.13.5
编辑:
在将我的存储库重新上线、解决所有依赖关系并将我的Wi-Fi设置为离线后,我可以退出sbt然后运行它。但是,只需要运行;reload ;clean ;compile,我就再次遇到问题了。如果退出,我甚至无法启动sbt。项目的依赖关系解析发生在我尝试使用dependency-tree等工具分析依赖关系图之前。即使不在线,如果尝试了解失败的传递性依赖项的来源,这也会非常令人烦恼。