首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何迫使sbt获取它所需的一切?

如何迫使sbt获取它所需的一切?
EN

Stack Overflow用户
提问于 2017-03-10 16:34:33
回答 1查看 587关注 0票数 5

我在一个非常安全的地方工作,没有通过代理访问SBT通常需要的所有在线存储库。我们希望获取所需的依赖项和传递依赖项。

如何强迫sbt获取项目所需的所有依赖项,从那里开始,只能脱机工作?我已经在家里试过这样做了。然后,我复制了下面的所有内容:

代码语言:javascript
复制
~/.ivy2/cache
~/.ivy2/local
$ACTIVATOR_HOME/repository

但是SBT,即使在执行sbt "set offline := true" run时,也会尝试从网上获取所有的东西.是种痛苦。最后,断断续续地抱怨,它没有找到一些依赖。

UPDATE:我注意到了另一个问题来源,但还不能断定这是OP破坏构建问题的罪魁祸首。我从Linux (Ubuntu box)构建并获取项目的依赖项,然后将所有文件复制到公司的Windows 7 Pro环境中。我发现~/.ivy2/cache下的许多属性文件引用Ubuntu中激活器存储库目录的绝对路径,这在Windows中当然是不正确的。

代码语言:javascript
复制
#ivy cached data file for ch.qos.logback#logback-classic;1.1.3
#Fri Mar 10 08:39:37 CET 2017
artifact\:ivy\#ivy.original\#xml\#-1844423371.location=/opt/dev/activator/1.3.12/repository/ch.qos.logback/logback-classic/1.1.3/ivys/ivy.xml
artifact\:ivy\#ivy\#xml\#1016118566.is-local=true
artifact\:ivy\#ivy\#xml\#1016118566.location=/opt/dev/activator/1.3.12/repository/ch.qos.logback/logback-classic/1.1.3/ivys/ivy.xml
artifact\:ivy\#ivy.original\#xml\#-1844423371.is-local=true
artifact\:ivy\#ivy\#xml\#1016118566.exists=true
artifact\:logback-classic\#jar\#jar\#804750561.is-local=true
artifact\:logback-classic\#jar\#jar\#804750561.location=/opt/dev/activator/1.3.12/repository/ch.qos.logback/logback-classic/1.1.3/jars/logback-classic.jar
artifact\:ivy\#ivy.original\#xml\#-1844423371.exists=true
artifact\:logback-classic\#jar\#jar\#804750561.exists=true

所以我去找并替换了,但是构建仍然不起作用。让数千个属性文件硬编码到激活器位置的绝对路径看起来并不是一个好主意。我更希望他们为此使用一个环境变量。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-11 19:58:41

也许你可以试试考西尔?不,只有它提供

更好的脱机模式--如果快照依赖项处于缓存中,则可以安全地处理这些依赖项(如果无法检查更新,SBT往往会尝试失败)。

但也比常春藤快得多,因为有并行的工件下载。这个项目很年轻,但很有希望。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42723317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档