我正在尝试离线(再次)脱离某个sbt项目.事情几乎似乎没问题,但有些奇怪的事情让我感到困惑.这是我注意到的:
我创建了一个空的sbt项目,并在考虑build.sbt中的以下依赖项:
name := "sbtSand"
version := "1.0"
scalaVersion := "2.11.7"
libraryDependencies ++= Seq(
"joda-time" % "joda-time" % "2.9.1",
"org.apache.spark" %% "spark-core" % "1.5.2"
)
我在线时构建了项目,可以看到[userhome] /.ivy2 / cache中的所有软件包.该项目建设良好.然后我关闭wifi,sbt clean并尝试构建.构建失败.我评论了火花依赖性(保持joda-时间).仍然离线,我运行sbt编译.该项目建设良好.我把火花依赖性重新放入,并且干净利落.它再次无法建立.我回到网上了.我可以再建一次.
失败版本的sbt输出如下:https://gist.github.com/ashic/9e5ebc39ff4eb8c41ffb
它的关键部分是:
解析org.apache.hadoop#hadoop-mapreduce-client-app; 2.2.0 …
[警告]找不到主机repo1.maven.org. URL = HTTPS://repo1.maven.org/maven2/org/apache/hadoop/hadoop-mapreduce-client-app/2.2.0/hadoop-mapreduce-client-app-2.2.0.pom
您可能通过配置不正确的代理服务器访问目标服务器.
有趣的是,sbt正在设法使用来自常春藤缓存的joda-time,但对于spark-core软件包(或者更确切地说是它的依赖),它想要联系互联网并使构建失败.任何人都可以帮助我理解这一点,以及我可以做些什么,这样我可以在完全离线时让它工作?
最佳答案 似乎问题在0.13.9中得到解决.我用的是0.13.8. [Windows的0.13.9 msi似乎给了我0.13.8,而0.13.9.2 msi安装了正确的版本.现有项目需要手动更新到构建属性中的0.13.9.]