【发布时间】:2014-11-20 00:12:47
【问题描述】:
我正在尝试在 IntelliJ IDEA 14.0.1 社区版中编译 Orbeon 表单,但出现编译错误。
- 检查了分支 origin/4.7-ce
- 使用 IntelliJ 打开项目
- 出错:加载错误:未定义的路径变量。 MESSAGE 未定义。
Fix it - 通过输入 C:\temp 作为值修复了 MESSAGE 错误。我不知道这是否重要。
- 安装了 Scala 和 File Watchers 插件
- 将 Java SDK 配置为 jdk1.7.0_09
- 删除了引用我的 $USER_HOME\.ivy2\cache 目录中不存在的 scala 编译器、库、反射 jar 的 scala-sdk。
- 安装了 Scala 2.10.3 SDK 并配置为项目中的库。
- 制作项目
- 有 94 个错误,都与 util 和 xml 包有关。我本来希望这些包是 scala.util 和 scala.xml。
错误示例:
orbeon-forms\src\main\scala\org\orbeon\oxf\common\PEVersion.scala
Error:(34, 8) object Try is not a member of package util<br/>
import util.Try
orbeon-forms\src\main\scala\org\orbeon\oxf\fb\AlertsAndConstraintsOps.scala<br/>
Error:(46, 9) type mismatch;<br/>
found : scala.xml.Elem<br/>
required: org.orbeon.saxon.om.NodeInfo<br/>
toXML currentLang<br/>
我做错了什么?
【问题讨论】:
-
抱歉,还没来得及研究这个。它应该工作,尽管我们使用的是 IntelliJ 的 Ultimate 版本。第一个错误肯定不对,因为
scala.util.Try是一个内置的Scala 类。会不会是scala-library.jar没有正确指向? -
@ebruchez
scala-library.jar包含在 scala-sdk-2.10.3 全局库中。 PEVersion.scala 中的导入是util.Try而不是scala.util.Try。见src。将其更改为scala.util.Try可以修复上述两个错误。但是,我还剩下一些,例如:Error:(80, 58) type mismatch; found : org.orbeon.oxf.xforms.XFormsError.ServerError required: <notype> containingDocument.addServerError(ServerError(t)) -
@ebruchez 我刚刚注意到源顶部的一条消息:
No IDEA annotations attached to the JDK IDEA IC-139.225.3 (idea path), some issues will not be found。当我单击附加注释时,它显示还有一个文件正在尝试导入util.Try。一旦我解决了这个问题,项目就成功编译了。然后我可以从 IntelliJ 成功运行 orbeon-war 任务。我仍然很困惑为什么没有更改就无法编译。我检查了另一个我没有导入 IntelliJ 的副本。它只用'ant orbeon-war`编译得很好。 -
奇怪的是,尽管构建成功,
XFormsContainingDocument.java在查看源代码时仍然显示错误:'XFormsContainingDocument' must either ve declared abstract or implement abstract methodparentXBLCcontainer()' in 'XBLContainer'`。错误似乎是准确的。 -
很高兴它的工作!我怀疑范围内还有另一个
Try。 Scala 相对于先前的导入进行解析,并且scala是隐式导入的。所以写scala.util.Try不会有伤害。
标签: scala intellij-idea orbeon