使用MalformedURLException将本地jar添加到sbt classpath失败:没有协议

时间:2017-01-25 14:15:38

标签: scala sbt classpath

我使用的是Scala版本2.10和SBT版本0.13.8。在我的Intellij项目中,我需要编译一个依赖于外部jar的程序。我已添加以下格式的libraryDependenciesresolvers

name := "test"

version := "1.0"

scalaVersion := "2.12.1"

resolvers += "Local IE Libraries" at "E/Temp/IE"

libraryDependencies ++= Seq(
  "org.gigaspaces.insightedge" % "insightedge-core" % "1.0.0")

我收到错误

[error] (*:update) sbt.ResolveException: unresolved dependency: org.gigaspaces.insightedge#insightedge-core;1.0.0: Local InsightEdge Libraries: unable to get resource for org/gigaspaces/insightedge#insightedge-core;1.0.0: res=E/Temp/IE/org
e/insightedge-core/1.0.0/insightedge-core-1.0.0.pom: java.net.MalformedURLException: no protocol: E/Temp/IE/org/gigaspaces/insightedge/insightedge-core/1.0.0/insightedge-core-1.0.0.pom

更新

如果我将file://前缀指定为

的解析程序路径
resolvers += "Local InsightEdge Libraries" at "file://E/Temp/IE"

我收到了不同的错误

[error] (*:update) sbt.ResolveException: unresolved dependency: org.gigaspaces.insightedge#insightedge-core;1.0.0: URI has an authority component

问题是由于Windows路径造成的吗?

由于

1 个答案:

答案 0 :(得分:0)

问题在于

resolvers += "Local IE Libraries" at "E/Temp/IE"

然后在MalformedURLException抱怨

的网址中产生结果
E/Temp/IE/org/gigaspaces/insightedge/insightedge-core/1.0.0/insightedge-core-1.0.0.pom

更具体地说,例外情况是“没有协议”。因此,如果这是本地存储库,您可能需要添加“file://”。不确定相对路径是否有效,但提供绝对路径应该有效:

file://absolute/path/to/the/directory/against/which/to/resolve

此维基百科页面可帮助您弄清楚如何在Windwows系统上指定路径:https://en.wikipedia.org/wiki/File_URI_scheme#Windows