我已经知道了:
<: 是Scala语法类型约束<:<是利用Scala隐式到达类型constrait的类型例如:
object Test {
// the function foo and bar can have the same effect
def foo[A](i:A)(implicit ev : A <:< java.io.Serializable) = i
foo(1) // compile error
foo("hi")
def bar[A <: java.io.Serializable](i:A) = i
bar(1) // compile error
bar("hi")
}
Run Code Online (Sandbox Code Playgroud)
但我想知道什么时候需要使用<:和<:<?
如果我们已经拥有<:,我们为什么需要<:<?
谢谢!
我用SBT 0.13.1.
当我添加HornetQ作为我的依赖:
libraryDependencies += "org.hornetq" % "hornetq-server" % "2.4.1.Final"
Run Code Online (Sandbox Code Playgroud)
sbt抛出异常.
我想要的是让SBT解决org.hornetq#hornetq-native;2.4.1.Final!hornetq-native.jar但不是org.hornetq#hornetq-native;2.4.1.Final!hornetq-native.${native-package-type}.
这是一个SBT错误还是可以/我应该指定一些属性来实现它吗?
[error] (*:update) sbt.ResolveException: download failed: org.hornetq#hornetq-native;2.4.1.Final!hornetq-native.${native-package-type}
[info] Updating {file:/Users/my/workhome/dev/scala-learn/}scala_learn...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[warn] [FAILED ] org.hornetq#hornetq-native;2.4.1.Final!hornetq-native.${native-package-type}: (0ms)
[warn] ==== local: tried
[warn] /Users/my/.ivy2/local/org.hornetq/hornetq-native/2.4.1.Final/${native-package-type}s/hornetq-native.${native-package-type}
[warn] ==== public: tried
[warn] http://repo1.maven.org/maven2/org/hornetq/hornetq-native/2.4.1.Final/hornetq-native-2.4.1.Final.${native-package-type}
[warn] ==== 99-empty: tried
[warn] http://version99.qos.ch/org/hornetq/hornetq-native/2.4.1.Final/hornetq-native-2.4.1.Final.${native-package-type}
[warn] ==== Local Maven Repository: tried
[warn] file:///Users/my/.m2/repository/org/hornetq/hornetq-native/2.4.1.Final/hornetq-native-2.4.1.Final.${native-package-type}
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: FAILED DOWNLOADS ::
[warn] :: ^ see resolution messages for details ^ ::
[warn] …Run Code Online (Sandbox Code Playgroud) 在 sbt 项目中下载依赖源 jars 是很自然的,使用sbt gen-idea或 idea 的自动导入功能
但是如何下载我在其中声明的 sbt 插件源 jars project/plugins.sbt