Scala SBT赢得';t解决对除Typesafe'之外的任何存储库的可传递依赖性;s
我有一个无法解决的可传递依赖性,我为此非常恼火 具体的依赖关系是Scala SBT赢得';t解决对除Typesafe'之外的任何存储库的可传递依赖性;s,scala,maven,sbt,Scala,Maven,Sbt,我有一个无法解决的可传递依赖性,我为此非常恼火 具体的依赖关系是org.apache.maven.wagen#wagen provider api;1.0-beta-2!虽然我不确定哪一个直接依赖项包含了它,但我还是不知道 该文件在默认的Maven repo上处于活动状态。然而,出于某种原因,SBT只是拒绝在那里检查它,尽管它很乐意在那里查找其他依赖项: [warn] [NOT FOUND ] org.apache.maven.wagon#wagon-provider-api;1.0-bet
org.apache.maven.wagen#wagen provider api;1.0-beta-2!虽然我不确定哪一个直接依赖项包含了它,但我还是不知道
该文件在默认的Maven repo上处于活动状态。然而,出于某种原因,SBT只是拒绝在那里检查它,尽管它很乐意在那里查找其他依赖项:
[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更新
。我已经一遍又一遍地运行了play clean
和play clean all
。从SBT提示符运行解析程序显示Maven repo在列表中
我试着下载jar并将其添加到我的常春藤缓存、常春藤存储库和我的游戏中!存储库
还有什么可以尝试的
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 appends to current resolvers
不过,不要问我解释,因为我不知道它为什么有效。只是JUnit遇到了类似的问题,并建议这样做,这有助于…而不是:
resolvers :=
(其缺点是不允许使用多个解析器。)我发现
resolvers +=
工作正常,不会出现OP中的错误。我也有类似的问题。但SBT甚至会在maven回购协议中搜索,它说的链接不起作用,实际上起作用
我通过在默认播放stuf之前移动自己的依赖项来解决这个问题:
之前
val appDependencies = Seq(
// Add your project dependencies here,
javaCore,
javaJdbc,
"mysql" % "mysql-connector-java" % "5.1.32"
)
之后
val appDependencies = Seq(
"mysql" % "mysql-connector-java" % "5.1.32",
javaCore,
javaJdbc
)
希望这对其他人有帮助。干杯sbt总是按照指定的顺序由决议者决定。可能发生的情况是,其中一个存储库中存在一个坏的ivy.xml/pom.xml文件,使sbt感到困惑,因此它认为必须从找到它的第一个位置提取该文件,实际上这是一个坏的存储库。
val appDependencies = Seq(
"mysql" % "mysql-connector-java" % "5.1.32",
javaCore,
javaJdbc
)