我从未能在任何项目上与SBT脱机工作。现在我正处于行动中,我的衣柜服务器托管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"),
但我确实在常春藤缓存中有依赖:
$ 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/
这应该不够吗?整套“离线:=真”从来没有对我有任何影响。依赖解析似乎发生在之前。
我现在真的需要让它工作。多年来我一直遇到这个问题,但现在我处于根本无法工作的境地。
在这里: http://www.scala-sbt.org/0.13.5/docs/Detailed-Topics/Dependency-Management-Flow.html
我读了
离线时:= true,a不会更新远程SNAPSHOT 分辨率,甚至是明确请求的更新。这应该 有效支持无需连接远程工作 库。另外证明的可重复的例子是 赞赏。显然,更新必须已成功运行才能运行 脱机。
我可能没有正确理解这一点,但是它说我不应该遇到问题吗?
我使用相同的问题:
> sbt "skip in update := true" run
使用sbt 0.13.5
编辑:
让我的repo再次在线,解析所有deps然后只是将我的wifi设置为离线我可以退出sbt然后运行它。但是,只需运行;重新加载;清理;编译,然后我再次启动。如果我退出,我甚至根本无法开始。在我可以尝试使用依赖关系树或类似方法分析依赖关系图之前,项目的依赖关系解决方案已经发生。即使不在线,这也是非常恼人的,如果说,试图了解失败的传递依赖来自何处。
答案 0 :(得分:8)
这看起来像是一个糟糕的黑客攻击,但是您可以将常春藤缓存指定为常春藤存储库,这样一旦下载了依赖项,就可以从缓存中解析它们。
例如,你的〜/ .sbt / repositories可能如下所示:
[repositories]
local
maven-central
cache: file://${user.home}/.ivy2/cache, [organisation]/[module]/ivy-[revision].xml, [organisation]/[module]/[type]s/[module]-[revision].[type]
注意:我必须明确设置常春藤和工件模式。在任何其他repos下面添加本地缓存,以便首先尝试它们。
答案 1 :(得分:2)
我也不能在单行中使用它。
但是,如果我开始sbt
然后在sbt中我使用set offline := true
它就会运作良好。
答案 2 :(得分:1)
这里有一个wiki页面:https://github.com/sbt/sbt/wiki/User-Stories:--Offline-mode-and-Dependency-Locking,在5月编辑,表示SBT的离线概念不能正常工作。这可能是您的构建继续尝试解决远程存储库依赖关系的一个原因,即使设置了offline
设置也是如此。
答案 3 :(得分:1)
从sbt 0.13.7开始,您可以在使用dependency cache
时脱机工作简而言之:
updateOptions := updateOptions.value.withCachedResolution(true)
sbt clean compile
。它像以前一样运行,检查所有分辨率。但也可以在本地创建和存储已解析的依赖关系图(~/.sbt/0.13/dependency
)。然后,如果你不改变你的依赖关系,sbt将始终使用缓存的依赖关系并且不需要网络(我刚试过)