scala - 如何强制 sbt 一次获取所需的一切?

标签 scala sbt typesafe-activator

我正在一个非常安全的项目中工作,无法通过代理访问 SBT 通常需要的所有在线存储库。我们想一次性获取我们需要的依赖项和传递依赖项。

如何强制 sbt 一次性获取项目所需的所有依赖项,然后只能离线工作?我试过在家里完全做到这一点。然后我复制了以下所有内容:

~/.ivy2/cache
~/.ivy2/local
$ACTIVATOR_HOME/repository

但仍然SBT即使使用 sbt "set offline := true" run 执行去并尝试在线获取所有内容......很痛苦。然后终于打破并提示它没有找到一些依赖。

更新 :我注意到另一个麻烦来源,但还不能断定它是 OP 损坏构建问题的罪魁祸首。我从 Linux(Ubuntu 机器)构建并获取项目的依赖项,然后将所有文件复制到企业 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

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

最佳答案

也许你可以试试 coursier ?
不只有它提供

better offline mode - one can safely work with snapshot dependencies if these are in cache (SBT tends to try and fail if it cannot check for updates)



但由于并行工件下载,它也比 Ivy 快得多。该项目很年轻,但很有前途。

关于scala - 如何强制 sbt 一次获取所需的一切?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42723317/

相关文章:

python - R sparklyr 包作为 Spark 的前端有多快?

scala - SBT 错误 : java. lang.RuntimeException:未检测到主类

java - 为什么弃用警告会导致 SBT 中出现编译错误

scala - 在没有嵌套案例类的情况下使用 Spray Json 解析超过 22 个字段

json - 为什么我使用 JSON Read with Play framework 2.3 得到 "Application does not take parameters"?

algorithm - 将列表分割为列表列表

Scala 2.12.2 发出大量无用的 "Warning: parameter value ... in method ... is never used"警告。如何摆脱它们?

playframework - 类型安全激活器可用的命令行选项/功能

unit-testing - 如何使用激活器执行单个单元测试用例?

playframework - 更改 Play 框架中的代理设置