使用SBT和SNAPSHOT依赖项脱机工作

Vik*_*alk 19 scala snapshot ivy sbt

在任何项目中,我都无法使用SBT脱机工作.现在我正处于行动中,我的衣柜服务器托管nexus处于脱机状态.

所以跑步说:

sbt "set offline := true" run
Run Code Online (Sandbox Code Playgroud)

我得到了其他缺少的deps:

[error] unresolved dependency: se.hedefalk#lift-utils_3.0_2.10;0.2-SNAPSHOT: not found
Run Code Online (Sandbox Code Playgroud)

对于声明为的依赖:

"se.hedefalk"       %% ("lift-utils_"+liftEdition) % ("0.2-SNAPSHOT"),
Run Code Online (Sandbox Code Playgroud)

但我确实在我的常春藤缓存中有依赖:

$ 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/
Run Code Online (Sandbox Code Playgroud)

应该不够吗?整套"离线:=真"从来没有对我有任何影响.依赖解析似乎发生在以前.

我现在真的需要这个工作.多年来我一直遇到这个问题,但现在我处于根本无法工作的境地.

在这里:http: //www.scala-sbt.org/0.13.5/docs/Detailed-Topics/Dependency-Management-Flow.html

我读

当离线:= true时,远程SNAPSHOT将不会通过分辨率更新,即使是明确请求的更新.这应该有效地支持在没有连接到远程存储库的情况下工作.可以理解以其他方式证明的可重复示例.显然,更新必须在脱机之前成功运行.

我可能不正确地理解这一点,但是它说我不应该有我的问题吗?

我有同样的问题:

> sbt "skip in update := true" run
Run Code Online (Sandbox Code Playgroud)

使用sbt 0.13.5

编辑:

让我的repo再次在线,解析所有deps然后只是将我的wifi设置为离线我可以退出sbt然后运行它.但是,只需运行;重新加载;清理;编译,然后我再次启动.如果我退出,我甚至根本无法开始.在我可以尝试使用依赖关系树或类似方法分析依赖关系图之前,项目的依赖关系解决方案已经发生.即使不在线,这也是非常恼人的,如果说,试图了解失败的传递依赖来自何处.

Jus*_*ser 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]
Run Code Online (Sandbox Code Playgroud)

注意:我必须明确设置常春藤和工件模式.在任何其他repos下面添加本地缓存,以便首先尝试它们.