除了Typesafe的存储库之外,SBT不会解决对任何存储库的传递依赖关系 [英] SBT won't resolve transitive dependency against any repository except Typesafe's

查看:89
本文介绍了除了Typesafe的存储库之外,SBT不会解决对任何存储库的传递依赖关系的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个传递性依赖关系,但是这种依赖关系无法解决,因此我正在为此扯掉头发.

I have a transitive dependency that just won't resolve and I'm tearing my hair out over this.

具体的依存关系是org.apache.maven.wagon#wagon-provider-api;1.0-beta-2!wagon-provider-api.jar,尽管我不确定其中包括哪个直接依存关系.

The specific dependency is org.apache.maven.wagon#wagon-provider-api;1.0-beta-2!wagon-provider-api.jar though I'm not sure which direct dependency is including it.

该文件仍处于活动状态,并且在默认的Maven存储库中运行良好.但是出于某种原因,SBT只是拒绝在那里检查,尽管很高兴在那里寻找其他依赖项:

The file is alive and well on the default Maven repo. For some reason, however, SBT just refuses to check there for it though it's happy to look there for other dependencies:

[warn]  [NOT FOUND  ] org.apache.maven.wagon#wagon-provider-api;1.0-beta-2!wagon-provider-api.jar (52ms)
[warn] ==== Typesafe Releases Repository: tried
[warn]   http://repo.typesafe.com/typesafe/releases/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  ::              FAILED DOWNLOADS            ::
[warn]  :: ^ see resolution messages for details  ^ ::
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[warn]  :: org.apache.maven.wagon#wagon-provider-api;1.0-beta-2!wagon-provider-api.jar
[warn]  ::::::::::::::::::::::::::::::::::::::::::::::
[error] (*:update) sbt.ResolveException: download failed: org.apache.maven.wagon#wagon-provider-api;1.0-beta-2!wagon-provider-api.jar
[error] Total time: 3 s, completed Mar 23, 2013 7:22:05 PM

我已经从主目录中删除了.ivy2.m2.sbt.我已经运行sbt update.我一遍又一遍地运行play cleanplay clean-all.在SBT提示符下运行resolvers表示Maven存储库在列表中.

I've deleted .ivy2, .m2 and .sbt from my home directory. I've run sbt update. I've run play clean and play clean-all over and over. Runnings resolvers from the SBT prompt shows the Maven repo is in the list.

我尝试下载jar并将其添加到Ivy缓存,Ivy存储库,Play!存储库.

I've tried downloading the jar and adding it to my Ivy cache, my Ivy repository, my Play! repository.

还有什么可以尝试的?

我的Build.scala:

My Build.scala:

import sbt._
import Keys._
import play.Project._

object ApplicationBuild extends Build {

  val appName         = "conspire"
  val appVersion      = "1.0-SNAPSHOT"

  val appDependencies = Seq(
    // Add your project dependencies here,
    javaCore,
    javaJdbc,
    "mysql" % "mysql-connector-java" % "5.1.18",
    "org.apache.cayenne.plugins" % "maven-cayenne-plugin" % "3.0.2",
    "org.objectstyle.ashwood" % "ashwood" % "2.0",
    "commons-collections" % "commons-collections" % "3.1",
    "commons-lang" % "commons-lang" % "2.6",
    "commons-logging" % "commons-logging" % "1.1"
  )

  val main = play.Project(appName, appVersion, appDependencies).settings(
    externalResolvers += "Local Maven Repository" at "file:///"+Path.userHome+"/.m2/repository",
    resolvers ++= Seq(DefaultMavenRepository,
                      "Objectstyle repository" at " http://objectstyle.org/maven2/")
  )

}

推荐答案

尝试

resolvers := // which overrides current resolvers

代替

resolvers ++= // which appends to current resolvers

尽管请我不要解释,因为我不知道它为什么起作用. JUnit和此链接建议这样做,这有助于...

Don't ask me for explanation though, cause I have no idea why it works. Just had a similar issue with JUnit and this link suggested doing it so, which helped...

这篇关于除了Typesafe的存储库之外,SBT不会解决对任何存储库的传递依赖关系的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆