自上周五以来,我的Play Framework应用程序需要花费15分钟来编译,因为解析依赖项的时间非常长。
依赖项驻留在repo.typesafe.com,repo1.maven.org和其他几个,包括像Deadbolt一样,托管在GitHub页面(http://schaloner.github.com)上,所以我不确定它是否属于一个外部回购。
我不能为我的生活找出造成这种情况的原因。有人能告诉我从哪里开始排除故障吗?
编辑:更多信息 - 我在新的虚拟机(Ubuntu 12.04)上测试了一个带有新Play实例的新Play应用程序,我获得了添加mysql jdbc的相同长分辨率时间来自Maven 1的连接器和来自GitHub Pages的Deadbolt。它似乎挂在其中一个回购并没有超时,但我不知道如何找出哪一个。我在plugins.sbt文件中注释掉了TypeSafe repo,但问题仍然存在。现在把我的头发拉出来。
编辑2: 2.0
和2.1
分支中存在错误。无法在2.2
中复制。目前,看起来将已发布的文件添加到[Play directory]/repository/cache
停止播放每次尝试解决所有问题。
答案 0 :(得分:1)
我认为这个问题是由Github的停机造成的。我的项目依赖于Github托管的项目,比如Deadbolt,所以我在Build.scala文件中添加了相应的存储库
resolvers += Resolver.url("Objectify Play Repository (release)", url("http://schaloner.github.com/releases/"))(Resolver.ivyStylePatterns),
resolvers += Resolver.url("Objectify Play Repository (snapshot)", url("http://schaloner.github.com/snapshots/"))(Resolver.ivyStylePatterns)
我注意到Play是尝试通过此存储库解析我的其他依赖项。例如,我在Deadbolt的github托管存储库中看到了解除apache.commons-io
和htmlunit
及其传递依赖性的超时失败。在正常情况下,这种尝试很快就会失败。但是当Github很慢时,需要很长时间来获得失败响应。
应该有一种方法可以更准确地指定每个依赖项使用哪个存储库,但我不确定如何使用SBT或Maven。
<强>更新强>
问题尚未解决。以下是超时错误的示例,这次是在Typesafe存储库
上 [error] Server access Error: Connection timed out: connect url=http://repo.types
afe.com/typesafe/releases/org/apache/commons/commons-email/1.2/commons-email-1.2
.jar
更新2
以前见过一个非常类似的问题:
https://groups.google.com/forum/#!msg/play-framework/cBIkLb_WPN8/uuJIdhdtvtEJ