我在一个非常安全的地方工作,没有通过代理访问SBT通常需要的所有在线存储库。我们希望获取所需的依赖项和传递依赖项。
如何强迫sbt获取项目所需的所有依赖项,从那里开始,只能脱机工作?我已经在家里试过这样做了。然后,我复制了下面的所有内容:
~/.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中当然是不正确的。
#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所以我去找并替换了,但是构建仍然不起作用。让数千个属性文件硬编码到激活器位置的绝对路径看起来并不是一个好主意。我更希望他们为此使用一个环境变量。
发布于 2017-03-11 19:58:41
也许你可以试试考西尔?不,只有它提供
更好的脱机模式--如果快照依赖项处于缓存中,则可以安全地处理这些依赖项(如果无法检查更新,SBT往往会尝试失败)。
但也比常春藤快得多,因为有并行的工件下载。这个项目很年轻,但很有希望。
https://stackoverflow.com/questions/42723317
复制相似问题