我有一个依赖于两个快照依赖项的SBT项目。每次我构建它,它都会转到远程存储库以获取依赖项。即使我设置了offline := true
,也是如此。
当我看看它是如何尝试解析本地依赖关系时,构建表示它正在查看“本地”,即~/.ivy2/local/...
- 这是一个不存在的目录。
罐子在~/.ivy2/cache/...
,这是SBT在从远程服务器提取依赖关系时下载它们的地方。
我搜索了我的.sbt和.scala构建文件,字符串“local”没有出现在存储库或缓存中。
SBT版本为0.13.11,针对scala 2.11.8。
为什么SBT这样做,我怎样才能看到缓存的罐子?
答案 0 :(得分:0)
如果您想阻止SBT尝试从官方存储库下载,您只需创建一个文件project/offline-repositories
:
[repositories]
mirror-central: file:////nexus/central
mirror-maven-central-org: file:////nexus/maven-central-org
...
(/nexus/central
和/nexus/maven-central-org
应包含离线所需内容的(部分)镜像
然后使用配置的sbt
属性调用sbt.repository.config
:
-Dsbt.override.build.repos=true \
-Dsbt.repository.config=./project/offline-repositories
供参考:
修改强>
如果您想使用~/.m2
缓存:
[repositories]
mirror-central: file:////home/XXXXX/.m2/repository
mirror-maven-central-org: file:////home/XXXXX/.m2/repository
...
答案 1 :(得分:0)
这显然是因为在我的Ivy缓存中我有一个名为〜/ .ivy2 / cache / com.xxx / xxx-utils / ivy-2.3.2-SNAPSHOT.xml.original的文件,该版本正在尝试并失败要解析。我不确定这个文件来自哪里;可以想象,它是在很久以前手动放置的。