我试图通过scala中的unboundid使用LDAP,但编译器一直在崩溃 .
我刚刚创建了一个如下所示的对象:
package utils
import com.unboundid.ldap.sdk._
object LdapHelper {
val ldap = LDAPConnection("ldap.example.com", 389)
}
我添加了这个:“com.unboundid”%“unboundid -ldapsdk”%“2.3.1”到我在Build.scala中的appDependencies . 我使用Play 2.1和Scala版本2.10.1 .
我收到一条非常奇怪的错误消息(见下文):
错误信息是如此奇怪,我真的不知道从哪里开始寻找提示 . 不确定问题是否在unboundid,play,scala,sbt?
如何在我的scala项目中成功集成unboundid?
谢谢
Scala编译器出错:断言失败:编译时:C:\ play \ todolist \ app \ utils \ LdapHelper.scala阶段:global = typer,atPhase =解析器库版本:版本2.10.2编译器版本:版本2.10.2重建args:-classpath C:\ play \ todolist.target; C:\ eclipse \ scala-SDK-3.0.1-vfinal-2.10-win32.win32.x86_64 \ configuration \ org.eclipse .
...
最后一个树到typer:Ident(LDAPConnection)符号:(flags :)符号定义:符号所有者:上下文所有者:value ldap - > object LdapHelper - > package utils
==封闭模板或块==
Template(// val:in object LdapHelper“java.lang.Object”// parents ValDef(private“_”)// 3语句DefDef(// def:in object LdapHelper“”[] List(Nil)Block(Apply (超 . “”Nil)()))DefDef(// def x:in object LdapHelper“x”[] Nil())ValDef(// private [this] val ldap:in object LdapHelper private“ldap”Apply( “LDAPConnection”// 2参数“ldap.example.com”389)))
2 回答
有一个警告在Scala 2.10.2中变成了一个断言导致这个 .
这里有一个错误:https://issues.scala-lang.org/browse/SI-7014
并修复了2.10.4:https://github.com/scala/scala/pull/2829
您可以通过使用以下Build.scala请求Play使用Scala 2.10.4-SNAPSHOT:
如果您使用build.sbt,该文件将如下所示:
注意:如果从sbt(而不是play)构建,则可能必须在scalaVersion行下添加存储库解析程序,例如:
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/repo/"
@jeckhart的答案有效 .
首先,我使用Scala 2.10.4-RC1构建Play 2.3 SNAPSHOT . 然后使用输出使用UnboundID进行编译 .
最后一切都编译没有断言或错误 .
为了使用Scala 2.10.4-RC1构建Play 2.3 SNAPSHOT,我修改了文件框架/ project / Build.scala .
改变这两部分
至